更新Oracle触发器之前:: new伪记录中未设置列的值

问题描述 投票:0回答:1

当我不显式更新此列但其他列时,我想知道:new oracle触发器中before update伪记录中的列的值是什么?

示例:

create table example (cod number(10),name varchar(50),description varchar(50));
update example set description = 'value example' where cod = 1;

如果a在before update表上具有example触发器,则:new.name的值是多少?记住我只是在更新description列。

谢谢

sql oracle plsql sql-update database-trigger
1个回答
0
投票

如果示例表上有更新前触发器,:new.name的值是什么?记住我只是更新描述列。

它将包含当前在要更新的行上的name列中的值。

这是quite easy to test

create table example (cod number(10),name varchar(50),description varchar(50)); 

create trigger trg_example
before update on example
for each row
begin
    dbms_output. put_line('new name:' || :new.name);
end;
/

insert into example(cod, name, description) values(1, 'foo', 'bar');
-- 1 rows affected

update example set description = 'zoo' where cod = 1;
-- 1 rows affected
dbms_output:新名称:foo
© www.soinside.com 2019 - 2024. All rights reserved.