postgresql 实现触发器语法
时间: 2023-08-05 07:07:40 浏览: 126
Postgresql基础语法汇总.zip_PostgreSQL基础语法汇总
PostgreSQL实现触发器的语法如下:
```
CREATE [ CONSTRAINT ] TRIGGER name { BEFORE | AFTER | INSTEAD OF } { event [ OR ... ] }
ON table
[ FROM referenced_table_name ]
[ NOT DEFERRABLE | [ DEFERRABLE ] { INITIALLY IMMEDIATE | INITIALLY DEFERRED } ]
[ REFERENCING { { OLD | NEW } TABLE [ AS ] transition_relation_name } [ ... ] ]
[ FOR [ EACH ] { ROW | STATEMENT } ]
[ WHEN ( condition ) ]
EXECUTE FUNCTION function_name ( arguments )
```
其中,关键字解释如下:
- `CREATE TRIGGER`:创建触发器。
- `BEFORE/AFTER/INSTEAD OF`:触发器执行的时机,分别为在操作前、操作后、代替操作。
- `event`:触发器的事件,可以是INSERT、UPDATE或DELETE。
- `table`:触发器所属的表。
- `FROM referenced_table_name`:当触发器在另一个表上定义时,该选项指定被引用的表名。
- `NOT DEFERRABLE/DEFERRABLE INITIALLY IMMEDIATE/INITIALLY DEFERRED`:设置触发器是否可以延迟执行。
- `REFERENCING`:指定OLD和NEW表的别名。
- `FOR EACH ROW/FOR EACH STATEMENT`:指定触发器是基于每个行还是每个语句执行。
- `WHEN`:指定触发器执行的条件。
- `EXECUTE FUNCTION`:指定触发器执行的函数名称和参数。
阅读全文