decade-old StackOverflow question分的答案对我很有帮助.然而,我无法用"标准"SQL编写等价的函数和触发器,即language
参数指定sql
而不是plpgsql
.问题似乎是用标准SQL编写的函数不能返回触发器,尽管这似乎是PostgreSQL中触发器调用的函数所必需的:
触发器函数必须声明为不带参数并返回类型触发器的函数.
所以try ...
create function func_dummy()
returns trigger as
'update tbl_dummy
set update_date = current_timestamp;'
language sql;
结果是:
ERROR: SQL functions cannot return type trigger
SQL state: 42P13
如何使用"标准"SQL重写original SO answer中特定于PostgreSQL的函数和触发器?