首页 > 解决方案 > Oracle:触发器将值插入另一个表,其中包含一个额外的自动增量主键列

问题描述

我有一张 Oracle 表说

Table1
(
roll_number,
myTimestamp
)

我有另一个 Oracle 表

Table2
(
roll_number,
myTimestamp,
recordid --> this is supposed to be an auto increment primary key
)

我想要的是一个触发器,它也将插入的记录插入其中,Table1Table2附加的主键整数列recordid会自动递增和插入。我可以在没有 Table2使用触发器的附加主键列约束的情况下插入记录,但是当我尝试这个附加列时,它会出现问题。

我尝试创建一个自动递增序列(例如MySeq)并尝试插入以创建触发器

create trigger MyTrigger
after insert on Table1
for each row
begin
  insert into Table2 values ( :new.roll_number,:new.myTimestamp,select MySeq.nextval into :new.recordid  from dual );
end;

但没有运气。提前致谢

标签: sqloracletriggers

解决方案


请试试这个:

在 Table1 上为每一行插入后创建或替换触发器 MyTrigger

声明 v_recordid 整数;

BEGIN select MySeq.nextval into v_recordid from dual;

插入 Table2 (roll_number,myTimestamp,recordid) 值 (:new.roll_number,:new.myTimestamp,v_recordid); 结尾;


推荐阅读