调用触发器函数时如何将表达式作为参数传递?
create trigger my_trigger
after insert on my_table
for each row
execute function trigger_job(
'job_name',
(json_build_object(
'foo', current_setting('foo', true),
'bar', current_setting('bar', true)
))
);
我知道如何使用表达式作为参数调用“普通”函数,但我无法让它从触发器调用函数。我也知道如何在触发函数中从 TG_ARGV[] 读取传递的参数,但这超出了这个问题。
我还尝试了一些简单的方法,例如:
create trigger my_trigger
after insert on my_table
for each row
execute function trigger_job(
'job_name',
(true)
);
但我仍然得到错误:
ERROR: syntax error at or near "("
LINE 6: (true)
^
更新:我现在正在使用中间函数。触发器使用单个文本参数调用中间函数。该中间函数构建第二个参数并trigger_job
使用两个参数调用最终函数。简单的。
这是不可能的。从文档: