触发不编译

时间:2018-02-12 21:15:11

标签: sql oracle plsql

所以我有一个名为xml_load的表。我将primary_key设置为row_id。每次在表中添加新条目时,我希望触发器自动填充row_id。我究竟做错了什么? (见下面的代码)。 我创建了一个名为row_id_increase的序列,以1开头。

create or replace trigger xml_load_trigger
before insert on xml_load
for each row
declare
begin
select row_id_increase.nextVal
into :Row_Id
from dual;
END;

提前致谢!

2 个答案:

答案 0 :(得分:1)

只需在列row_id上添加:new

作为前缀
create or replace trigger xml_load_trigger
before insert on xml_load
for each row
declare
begin
 select row_id_increase.nextVal
   into :new.Row_Id
   from dual;
end;
/

或者您可以直接指定为

:new.row_id := row_id_increase.nextVal;

而不是那个sql。

答案 1 :(得分:1)

实际上,根本不需要SELECT:

create or replace trigger xml_load_trigger
  before insert on xml_load
  for each row
begin
  :new.row_id := row_id_increase.nextval;
end;
/