DROP TRIGGER使用变量来定义触发器的名称

时间:2014-09-18 14:22:00

标签: database postgresql variables triggers

我有两个环境,每个环境都有不同的触发器名称,我想在两个envs上使用相同的脚本来删除我拥有的触发器...

问题是,当我这样做时:

variable := 'trigger_name';

DROP TRIGGER variable ON my_table;

它尝试DROP一个名为'变量'的触发器。不是' trigger_name'正如我所料...... 我该怎么办呢?

提前谢谢! -B.J。

1 个答案:

答案 0 :(得分:3)

您必须将动态SQL与EXECUTE一起使用。你已经在使用PL / PgSQL,所以只需:

variable := 'trigger_name';

EXECUTE format('DROP TRIGGER %I ON my_table', variable);