ALTER TRIGGER命令用於更改觸發器定義,例如觸發器名稱、依賴關係、觸發器開關等。
文法
- 更改表
table_name的觸發器名稱。ALTER TRIGGER name ON table_name RENAME TO new_name - 更改表
table_name的觸發器name依賴的外掛程式為extension_name。ALTER TRIGGER name ON table_name DEPENDS ON EXTENSION extension_name - 更改
schema下名稱唯一的觸發器name是否有效。ALTER TRIGGER [schema.]name ENABLE | DISABLE;說明- 同一個Schema下觸發器名稱必須唯一。
- 內建觸發器的狀態無法修改。
參數
| 參數名稱 | 描述 |
| schema | 觸發器依賴的表所在的命名空間,預設是public。 |
| name | 觸發器依賴的表的名稱。 |
| new_name | 觸發器的新名稱。 |
| extenion_name | 觸發器依賴的外掛程式名稱。 |
| ENABLE/DIABLE | 觸發器是否有效狀態。
|
樣本
- 更改觸發器名稱。
ALTER TRIGGER emp_stamp ON emp RENAME TO emp_track_chgs; - 更改觸發器依賴的外掛程式。
ALTER TRIGGER emp_stamp ON emp DEPENDS ON EXTENSION emplib; - 開啟或關閉觸發器。
testdb=> select tgrelid,tgname,tgenabled from pg_trigger; tgrelid | tgname | tgenabled ---------+-----------+----------- 16386 | emp_audit | O (1 row) testdb=> insert into emp values(1,'Alice'); ERROR: INSERT is illegal on emp. CONTEXT: PL/pgSQL function process_emp_audit() line 12 at RAISE testdb=> ALTER TRIGGER emp_audit DISABLE; ALTER TRIGGER testdb=> insert into emp values(1,'Alice'); INSERT 0 1 testdb=> ALTER TRIGGER emp_audit ENABLE; ALTER TRIGGER testdb=> insert into emp values(2,'Bob'); ERROR: INSERT is illegal on emp. CONTEXT: PL/pgSQL function process_emp_audit() line 12 at RAISE