使用BEFORE INSERT触发器SQL将当前用户插入表列

时间:2018-09-24 21:08:33

标签: oracle plsql database-trigger

我想使用插入前触发器将当前用户插入“ created_by”列。

这是我到目前为止所拥有的:

create or replace trigger course_fp_trg 
before insert on course 
begin
  :new.created_by := user;
end;

但是我收到错误消息“在表级触发器中不允许使用NEW或OLD引用”

如何使用插入前触发器将当前用户插入此表的“ created_by”列中?

2 个答案:

答案 0 :(得分:0)

尝试通过添加FOR EACH ROW使其成为行级触发器。

create or replace trigger course_fp_trg 
before insert on course for each row
begin
  :new.created_by := user;
end;

答案 1 :(得分:0)

您可以尝试这个。

create or replace trigger course_fp_trg 
before insert on course 
referencing old as old new as new
for each row
begin
  :new.created_by := user;
end;