对于每一行触发器,没有“新”关系

时间:2019-03-25 23:12:19

标签: postgresql triggers insert

我有“插入后”,“每行”触发器。每次插入时,都应在不同的表中插入几行。

在触发功能中,我可以执行以下操作:

insert into c values (
   new.column1
)

但是当我尝试将其更改为更强大的版本时(在进行更复杂的插入之前)

insert into c select
   new.column1
from new

我得到一个错误:

  

错误:关系“ new”不存在

如何插入根据查询new的值计算得出的值?

2 个答案:

答案 0 :(得分:3)

触发函数中的

new是一个复合变量,表示要插入的行,因此您可以:

insert into c
select new.column1;

答案 1 :(得分:1)

NEW关键字引用新插入的值。要访问任何值,无需从表中SELECT,只需:

INSERT INTO c (column1) VALUES NEW.column1