DB2中如何查看增删改操作后的受影响行?
DB2 实现 PostgreSQL RETURNING 功能的方法
DB2 从版本 10.1 开始原生支持 RETURNING 子句,用法和 PostgreSQL 高度一致,可直接在 INSERT、UPDATE、DELETE 语句末尾添加该子句,返回受操作影响的行数据。
基础示例(返回所有列)
对应你提供的 PostgreSQL UPDATE 示例,DB2 的写法几乎完全相同:
UPDATE tblName SET colName = 'something' WHERE colName = 'something' RETURNING *;
返回指定列
如果不需要返回全部列,可明确指定要获取的列名:
UPDATE tblName SET colName = 'something' WHERE colName = 'something' RETURNING colName, other_column;
适用场景与注意事项
- 支持 INSERT、UPDATE、DELETE 三种写操作,批量操作时会返回所有受影响的行;
- 仅适用于 DB2 10.1 及更高版本;
- 应用程序需确保数据库驱动能正确处理这类返回结果集。
低版本 DB2 替代方案(10.1 之前)
如果使用的是旧版 DB2,可通过事务包裹查询+修改的方式模拟,但需注意并发风险:
- 在同一个事务中,先查询出要操作的行数据并暂存;
- 执行 UPDATE/DELETE 操作;
- 用之前查询到的数据作为返回结果。
内容的提问来源于stack exchange,提问作者Abra
相关产品推荐
相关产品推荐

