CREATE TRIGGER <触发器名>{BEFORE | AFTER} <触发事件> ON <表名> REFERENCING NEW |OLD ROW AS <变量>FOR EACH {ROW | STATEMENT}[WHEN <触发条件> ] <触发动作体>
时间: 2024-06-09 21:03:15 浏览: 152
创建触发器
这是一个SQL语句中定义触发器的语法[^1]。具体来说,触发器可以在指定的表上执行某些操作,并且当满足特定条件时触发,如插入,更新和删除操作。触发器可以在此类操作之前或之后触发,并且可以在每行或每个语句级别上执行。
下面是该语法中各个部分的含义:
- CREATE TRIGGER:创建一个触发器。
- <触发器名>:触发器的名称。
- {BEFORE | AFTER}:指定触发器在触发事件之前还是之后触发。
- <触发事件>:指定触发器应该触发的事件,如INSERT,UPDATE和DELETE。
- ON <表名>:指定触发器所在的表名。
- REFERENCING NEW |OLD ROW AS <变量>:指定在触发器中使用的行的别名。
- FOR EACH {ROW | STATEMENT}:指定触发器是针对每一行还是针对每个语句级别执行。
- [WHEN <触发条件> ]:指定触发器应满足的条件。
- <触发动作体>:触发器触发时要执行的操作。
下面是一个例子,它创建一个在插入行之前触发的触发器,该行插入到名为“employees”的表中。触发器的目的是将插入的值记录到名为“employee_audit”的表中:
```sql
CREATE TRIGGER employee_insert
BEFORE INSERT ON employees
FOR EACH ROW
INSERT INTO employee_audit
VALUES(NEW.employee_id, NEW.employee_name, NEW.employee_salary, 'inserted');
```
阅读全文