【发布时间】:2013-03-25 06:01:06
【问题描述】:
有没有办法判断在 PL/SQL BEFORE UPDATE 触发器中显式更新了哪些列?
例如:我只想在UPDATE 语句未明确指定此列的值时设置:new.last_modified_by := USER。
【问题讨论】:
有没有办法判断在 PL/SQL BEFORE UPDATE 触发器中显式更新了哪些列?
例如:我只想在UPDATE 语句未明确指定此列的值时设置:new.last_modified_by := USER。
【问题讨论】:
使用UPDATING函数:
if updating('LAST_MODIFIED_BY') then
...
end if;
更多细节在手册中:http://docs.oracle.com/cd/E11882_01/appdev.112/e25519/triggers.htm#BCFIDDBB
【讨论】:
IS NULL。这对于update foo set last_modified_by = null 也是“正确的”。取决于 OP 是否应被视为“明确说明一个值”