提要: 本教程将向您介绍如何管理PostgreSQL触发器,包括修改,禁用和删除触发器。

修改触发器

要修改触发器,需要使用 ALTER TRIGGER 语句。这条语句是 PostgreSQL 对标准 SQL 的扩展。其语法如下:

ALTER TRIGGER trigger_name ON table_name
RENAME TO new_name;

首先,指定修改哪个表里的哪个触发器。其实,在 RENAME TO 子句后面指定了触发器的新名字。

比如,你想将 employees 表里的 last_name_changes,重命名为 log_last_name_changes,可以使用以下语句:

ALTER TRIGGER last_name_changes ON employees
RENAME TO log_last_name_changes;

禁用触发器

PostgreSQL 没有提供任何专门用于禁用触发器的语句。你需要使用 ALTER TABLE 语句来禁用触发器,如下所示:

ALTER TABLE table_name
DISABLE TRIGGER trigger_name | ALL

DISABLE TRIGGER 后面指定要禁用的触发器的名字。要禁用该数据表关联的所有触发器,使用 ALL 来代替触发器名称。

提示,禁用后的触发器仍然存在于数据库中,只是不触发事件而已。

假设你要禁用 employees 表的 log_last_name_changes 触发器,可以使用下面的语句:

ALTER TABLE employees
DISABLE TRIGGER log_last_name_changes;

要禁用所有与 employeess 表关联的触发器,使用下面的语句:

ALTER TABLE employees
DISABLE TRIGGER ALL;

删除触发器

要删除一个已存在的触发器,需要使用 DROP TRIGGER 语句,其语法如下:

DROP TRIGGER [IF EXISTS] trigger_name ON table_name;

DROP TRIGGER 后面指定需要删除的触发器的名字。要忽略因触发器不存在而引发的错误,应该加上 IF EXISTS。比如,要删除 employeeslog_last_name_changes 触发器:

DROP TRIGGER log_last_name_changes ON employees;
上一篇:创建触发器