从在 Amazon RDS Postgres 实例上运行的 plpgsql 脚本中,是否可以获取有关实例配置的信息?如何检索实例的数据库实例 ID、ARN(Amazon 资源名称)或终端节点?
我想将它用作一些 plpgsql-script 中的检查,以 100% 确保它不会在生产数据库上执行它的操作。
从在 Amazon RDS Postgres 实例上运行的 plpgsql 脚本中,是否可以获取有关实例配置的信息?如何检索实例的数据库实例 ID、ARN(Amazon 资源名称)或终端节点?
我想将它用作一些 plpgsql-script 中的检查,以 100% 确保它不会在生产数据库上执行它的操作。
调用触发器函数时如何将表达式作为参数传递?
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
使用两个参数调用最终函数。简单的。