MySQL中DELETE后立刻获知删除行数应调用ROW_COUNT()它返回上一条DML实际变更行数PostgreSQL则需用RETURNING子句或客户端API获取影响行数。MySQL里DELETE后怎么立刻知道删了几行直接查ROW_COUNT()不是SELECT COUNT(*)回查也不是看客户端返回的“Query OK”模糊提示。它返回的是上一条DELETE或UPDATE/INSERT实际变更的行数精确到个位。常见错误是执行完DELETE FROM t WHERE x 1就以为完事了结果发现没删成——可能条件写错、事务没提交、或者根本没匹配到数据。这时候ROW_COUNT()返回0就是最直接的信号。必须在同一线程/连接中紧接DELETE之后调用跨语句或换连接就失效存储过程中可用SELECT ROW_COUNT()应用层如Python用cursor.rowcount注意部分驱动需在execute()后立即读不能先fetch如果DELETE带LIMITROW_COUNT()返回的是实际删除行数不是LIMIT值PostgreSQL没有ROW_COUNT()函数怎么办PostgreSQL不用函数靠RETURNING子句或客户端API获取影响行数。它不提供类似MySQL的会话级计数器所以得从执行动作本身拿反馈。典型场景你想确认DELETE FROM orders WHERE status canceled AND created_at 到底清了几单又不想再跑一遍codeSELECT COUNT(*)——那就在删的时候加RETURNING id然后数结果集行数。 通义听悟 阿里云通义听悟是聚焦音视频内容的工作学习AI助手依托大模型帮助用户记录、整理和分析音视频内容体验用大模型做音视频笔记、整理会议记录。