如何在PostgreSQL中创建“在多列上更新后触发器”?

6
我打算在postgresql的特定列上创建触发器,但是我无法做到。
我可以将触发器绑定到在更新特定表的特定列后触发,但我无法为多个列执行此操作。我想知道这是否可能?
我不想在触发器函数中编写IF(UPDATE(column series))来解决它。
--我尝试了下面的代码,但它给我返回一个逗号错误。
    create trigger save_information after update of table_name on day, month
    for each row
               execute procedure save_function();

-- 但是以下代码(仅涉及一个列)可以正常工作:
    create trigger save_information after update of table_name on day
    for each row
               execute procedure save_function();

我不想改变我的save_function来解决它,也不想使用“IF(update(column series)”语句。 对于我的写作水平请多多包涵。

请问您能分享一下具体的错误信息吗? - Mureinik
具体错误为:错误:在“,”附近的语法错误。第28行:...在天、月更新表名后的信息后... ^SQL状态:42601字符:1061 - milad
1个回答

11

根据文档记录,在 OF 关键字后列出列名。

因此应该是:

create trigger save_information 
     after update of day, month
     on table_name 
for each row execute procedure save_function();

非常感谢。 问题已经解决了。 如果这么简单,对不起 :| - milad

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接