DB2:忽略更新触发器中的列
DB2: Ignore Column in Update Trigger
我正在尝试在 DB2 中编写一个触发器,它会在 table 中所有列的更新时触发,但只有一个列除外。我正在寻找一种方法来 "ignore" 触发器中的列。我需要的是类似于以下代码片段的内容(如 SQL 服务器的 here 所述):
IF NOT (UPDATE(column_1))
BEGIN
...
END
如果我正确理解 DB2 触发器语法 (link),这在 DB2 中是不可能的。
摘录:
>--+-INSERT--------------------------+--ON--+-table-name-+------>
+-DELETE--------------------------+ '-view-name--'
'-UPDATE--+---------------------+-'
| .-,-----------. |
| V | |
'-OF----column-name-+-'
我最后做的只是列出相同 table 的所有其他列(因此,选择加入而不是选择退出):
UPDATE OF column_2, column_3, column_4
不过,我想知道是否有更好的方法来做到这一点。我使用的是 DB2 8.2,但如果有适用于未来版本的解决方案,我也会有兴趣了解它。希望有一天我们会升级。谢谢!
为了完整性和其他有同样问题的人,我不得不提到问题中描述的解决方法确实是可行的方法。 DB2 语法不允许您排除(忽略)个别列。
我正在尝试在 DB2 中编写一个触发器,它会在 table 中所有列的更新时触发,但只有一个列除外。我正在寻找一种方法来 "ignore" 触发器中的列。我需要的是类似于以下代码片段的内容(如 SQL 服务器的 here 所述):
IF NOT (UPDATE(column_1))
BEGIN
...
END
如果我正确理解 DB2 触发器语法 (link),这在 DB2 中是不可能的。
摘录:
>--+-INSERT--------------------------+--ON--+-table-name-+------>
+-DELETE--------------------------+ '-view-name--'
'-UPDATE--+---------------------+-'
| .-,-----------. |
| V | |
'-OF----column-name-+-'
我最后做的只是列出相同 table 的所有其他列(因此,选择加入而不是选择退出):
UPDATE OF column_2, column_3, column_4
不过,我想知道是否有更好的方法来做到这一点。我使用的是 DB2 8.2,但如果有适用于未来版本的解决方案,我也会有兴趣了解它。希望有一天我们会升级。谢谢!
为了完整性和其他有同样问题的人,我不得不提到问题中描述的解决方法确实是可行的方法。 DB2 语法不允许您排除(忽略)个别列。