更新时间:2025-07-10 GMT+08:00
ALTER TRIGGER
功能描述
修改触发器定义。
注意事项
只有触发器所在表的所有者可以执行ALTER TRIGGER操作,系统管理员默认拥有此权限。
语法格式
1
|
ALTER TRIGGER trigger_name ON table_name RENAME TO new_name; |
参数说明
参数 |
描述 |
取值范围 |
---|---|---|
trigger_name |
需要修改的触发器的名称。 |
有效的触发器名。 |
table_name |
需要修改的触发器所在的表名称。 |
触发器所在的有效表名。 |
new_name |
新的触发器名称。 |
字符串,需符合标识符命名规范。 |
示例
创建示例表test_trigger_src_tbl和test_trigger_des_tbl。
1 2 3 4 5 |
DROP TABLE IF EXISTS test_trigger_src_tbl; DROP TABLE IF EXISTS test_trigger_des_tbl; CREATE TABLE test_trigger_src_tbl(id1 INT, id2 INT, id3 INT); CREATE TABLE test_trigger_des_tbl(id1 INT, id2 INT, id3 INT); |
创建触发器函数tri_insert_func()。
1 2 3 4 5 6 7 8 9 |
DROP FUNCTION IF EXISTS tri_insert_func; CREATE OR REPLACE FUNCTION tri_insert_func() RETURNS TRIGGER AS $$ DECLARE BEGIN INSERT INTO test_trigger_des_tbl VALUES(NEW.id1, NEW.id2, NEW.id3); RETURN NEW; END $$ LANGUAGE PLPGSQL; |
创建触发器insert_trigger。
1 2 3 4 |
CREATE TRIGGER insert_trigger BEFORE INSERT ON test_trigger_src_tbl FOR EACH ROW EXECUTE PROCEDURE tri_insert_func(); |
修改触发器insert_trigger。
1
|
ALTER TRIGGER insert_trigger ON test_trigger_src_tbl RENAME TO delete_trigger_renamed; |
禁用触发器delete_trigger_renamed。
1
|
ALTER TABLE test_trigger_src_tbl DISABLE TRIGGER delete_trigger_renamed; |
禁用表test_trigger_src_tbl所有触发器。
1
|
ALTER TABLE test_trigger_src_tbl DISABLE TRIGGER ALL; |