【问题标题】:for each row trigger and no 'new' relation对于每一行触发器并且没有“新”关系
【发布时间】:2019-08-16 06:41:33
【问题描述】:

我有'插入后','每行'触发器。在每次插入时,它应该在不同的表中插入几行。

在触发函数中我可以做到:

insert into c values (
   new.column1
)

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

insert into c select
   new.column1
from new

我得到一个错误:

错误:关系“新”不存在

如何插入从引用 new 值的查询计算的值?

【问题讨论】:

    标签: postgresql triggers insert


    【解决方案1】:

    NEW 关键字引用新插入的值。要访问任何值,您不需要从表中SELECT,您可以简单地:

    INSERT INTO c (column1) VALUES NEW.column1
    

    【讨论】:

      【解决方案2】:

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

      insert into c
      select new.column1;
      

      【讨论】:

        猜你喜欢
        • 2020-10-04
        • 2020-07-27
        • 2021-07-07
        • 1970-01-01
        • 2018-01-16
        • 1970-01-01
        • 2015-02-02
        • 2021-10-21
        • 1970-01-01
        相关资源
        最近更新 更多