database - DROP TRIGGER 使用变量定义触发器名称

标签 database postgresql variables triggers

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

问题是,当我执行以下操作时:

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/

相关文章:

sql - 获取计数行的最后一个实例

python - 图像不响应不同的按键 Pygame Python

c++ - 如何在 .hpp/.cpp 文件中定义/声明类实例?

postgresql - 如何从函数返回更新的行

c++ - 按位运算是否解析为常量值

mysql - 使用zymichost创建表

linux - Centos 7 上带有自定义 PGDATA 的 Postgresql 9.3

javascript - PHP:看似简单的 IF 语句,但似乎不起作用

mysql - 如何根据类型获取值的数量?

PostgreSQL now() 值不改变函数中的值