我有两个环境,每个环境都有不同的触发器名称,我想在两个环境上使用相同的脚本来删除我拥有的触发器...
问题是,当我执行以下操作时:
variable := 'trigger_name';
DROP TRIGGER variable ON my_table;
它试图像我预期的那样 DROP 一个名为“variable”而不是“trigger_name”的触发器... 我怎么能做这样的事?
提前致谢! -B.J.
最佳答案
您必须将动态 SQL 与 EXECUTE
一起使用。您已经在使用 PL/PgSQL,所以只需:
variable := 'trigger_name';
EXECUTE format('DROP TRIGGER %I ON my_table', variable);
关于database - DROP TRIGGER 使用变量定义触发器名称,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25915288/