【问题标题】:Postgres Trigger Function Dynamic Column Concat TG_TABLE_NAMEPostgres 触发函数动态列 Concat TG_TABLE_NAME
【发布时间】:2020-04-17 06:01:55
【问题描述】:

我想知道是否可以在 Postgres 11 的触发器函数中执行类似的操作。

CREATE OR REPLACE FUNCTION "searchs"."handle_content" ( ) 
  RETURNS trigger 
AS $BODY$ 
BEGIN
  UPDATE table 
      set test = 1
  WHERE item_id = NEW.format('%I_id',TG_TABLE_NAME);
END;
$BODY$ 

表的主键改变了,所以我需要和表名连接

NEW.format('%I_id',TG_TABLE_NAME)

【问题讨论】:

  • 是否要更新与定义触发器的表不同的表?
  • 是的,我在 5 个表上有 5 个触发器,当有变化时,我会更新另一个表
  • 而且我不想用 5 个函数来做同样的事情,我可以做到,但我不想因为 1 列。

标签: postgresql stored-procedures dynamic-sql database-trigger


【解决方案1】:

我已经用 CASE 解决了,但我仍然想知道是否可以转换为数组记录类型,或者动态访问它。

【讨论】:

    猜你喜欢
    • 2021-12-21
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-11-23
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多