获取受更新影响的行

blu*_*ish 2 database db2 ibm-midrange

如何在AS400上的DB2中获取受SQL UPDATE语句影响的确切行

查看哪些是刚更新的行,在测试期间甚至更多,这非常有用.

我看到了这个问题:是一样的,但具体针对MySQL.是否有标准的SQL方式或DB2特定方式来执行此操作?

我也看到了这种技术,但我不能使用它,因为我的更新查询太复杂了.

另一个功能可能是:获取这些行的先前版本,以便您可以将其与实际版本(更新后)进行比较并查看修改.

编辑:我的DB2版本是IBM i V5R3和V6R1的版本

Ian*_*vde 5

您没有说明正在运行的i5/OS版本,但如果您运行的是V6R1或更高版本,则可以使用"数据更改表引用"来查看update语句修改的行.例如:

select * from FINAL TABLE ( update yourtable set c1 = x where ... )
Run Code Online (Sandbox Code Playgroud)

FINAL TABLE将在触发任何/所有触发器后为您提供行.请注意,还有另一个数据更改表引用NEW TABLE - 它将在受到任何触发器影响之前显示行.

您可以在i5/OS文档中阅读有关数据更改表引用的信息.


Lyn*_*ffy 5

GET DIAGNOSTICS updated_rows = ROW_COUNT;
Run Code Online (Sandbox Code Playgroud)

在这里查看:GET DIAGNOSTICS 语句

您的“附加功能”听起来像是您想要一个触发器。

以交互方式,使用STRSQL,这样的响应消息会在语句完成后显示在屏幕上。