如何使用SQL TRIGGER将另一个表中的行插入到新表中?

时间:2017-03-07 14:52:10

标签: sql oracle plsql triggers

这是我的创建触发器声明:

I am nested!

我想要的是,每当我在CREATE OR REPLACE TRIGGER time_of_inserts AFTER INSERT ON t_workers FOR EACH ROW BEGIN SELECT pk_workerid, sysdate archivetime into t_logtable from t_workers END; 表中插入一个新行时,我想插入一个新的主键(它可以是1中唯一的,或者复制插入的数据),以及插入新表的时间(t_workers)。但我不知道如何每次都将它插入新表中。你可以看到上面我到目前为止所做的事情。

1 个答案:

答案 0 :(得分:4)

  

"我的主要问题是每次触发时都会插入新表格#34;

但是你没有插入,你正在选择。要插入,您需要指定insert关键字:)

此外,您不想从触发表中进行选择:请改用:NEW命名空间。

CREATE OR REPLACE TRIGGER time_of_inserts 
AFTER INSERT ON t_workers 
FOR EACH ROW 

BEGIN 
   insert into t_logtable 
     values (:new.pk_workerid , sysdate );
END; 

为消除明显的混淆,SELECT ... INTO填充本地(PL / SQL)变量。它不是我们用于插入表格的语法。