PostgreSQL 触发器
PostgreSQL触发器是一种强大的数据库对象,它可以在特定的数据库事件发生时自动执行预定义的操作。这些事件可以是插入、更新或删除表中的行。触发器通常用于强制复杂的业务规则、审计更改、同步复制数据到其他表或文件,以及提供复杂的引用完整性。
1. 触发器的基本概念
1.1 触发器类型
PostgreSQL支持以下类型的触发器:
- 行级触发器:对DML语句影响的每一行触发一次。
- 语句级触发器:对每个DML语句触发一次,不考虑影响的行数。
1.2 触发时间
触发器可以在以下时间点触发:
- BEFORE:在检查约束和执行实际的数据更改之前触发。
- AFTER:在数据更改之后触发。
- INSTEAD OF:用于视图,替代标准的数据库操作。
1.3 触发事件
触发器可以响应以下事件:
- INSERT:向表中插入行时触发。
- UPDATE:更新表中行时触发。
- DELETE:从表中删除行时触发。
- TRUNCATE:截断表时触发。
2. 创建触发器
创建触发器的基本语法如下:
CREATE TRIGGER trigger_name
{BEFORE | AFTER |