更新时间:2024-08-20 GMT+08:00

ALTER TRIGGER

功能描述

ALTER TRIGGER语句用于修改触发器名称。

目前只支持修改触发器的名称。

注意事项

触发器所在表的所有者或者被授予了ALTER ANY TRIGGER权限的用户可以执行ALTER TRIGGER操作,系统管理员默认拥有此权限。

语法格式

1
ALTER TRIGGER trigger_name ON table_name RENAME TO new_name;

参数说明

  • trigger_name

    要修改的触发器名称。

    取值范围:已存在的触发器。

  • table_name

    要修改的触发器所在的表名称。

    取值范围:已存在的含触发器的表。

  • new_name

    修改后的新名称。

    取值范围:符合标识符命名规范的字符串,最大长度不超过63个字符,且不能与所在表上其他触发器同名。

示例

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
--创建源表及触发表。
gaussdb=# CREATE TABLE test_trigger_src_tbl(id1 INT, id2 INT, id3 INT);
gaussdb=# CREATE TABLE test_trigger_des_tbl(id1 INT, id2 INT, id3 INT);

--创建DELETE触发器函数。
gaussdb=# CREATE OR REPLACE FUNCTION TRI_DELETE_FUNC() RETURNS TRIGGER AS
           $$
           DECLARE
           BEGIN
                   DELETE FROM test_trigger_des_tbl WHERE id1=OLD.id1;
                   RETURN OLD;
           END
           $$ LANGUAGE plpgsql;

--创建DELETE触发器。
gaussdb=# CREATE TRIGGER delete_trigger BEFORE DELETE ON test_trigger_src_tbl FOR EACH ROW EXECUTE PROCEDURE tri_delete_func();

--修改触发器的名称。
gaussdb=# ALTER TRIGGER delete_trigger ON test_trigger_src_tbl RENAME TO delete_trigger_renamed;

--删除触发器。
gaussdb=# DROP TRIGGER delete_trigger_renamed ON test_trigger_src_tbl;

--删除函数。
gaussdb=# DROP FUNCTION tri_delete_func;

--删除源表及触发表。
gaussdb=# DROP TABLE test_trigger_src_tbl;
gaussdb=# DROP TABLE test_trigger_des_tbl;