mysql如何创建触发器
时间: 2023-10-15 13:04:03 浏览: 90
MySQL如何创建触发器
5星 · 资源好评率100%
在 MySQL 中创建触发器的语法如下:
```
CREATE TRIGGER trigger_name
{BEFORE | AFTER} {INSERT | UPDATE | DELETE}
ON table_name FOR EACH ROW
trigger_body
```
其中,`BEFORE` 或 `AFTER` 表示触发器在相应事件之前或之后执行,`INSERT`、`UPDATE` 或 `DELETE` 表示触发器要响应的事件,`table_name` 表示触发器所在的表,`FOR EACH ROW` 表示触发器要作用于每一行数据,`trigger_body` 表示触发器要执行的代码块。
以下是一个示例,创建一个在 `employee` 表上执行的 `BEFORE INSERT` 触发器,当插入一条新记录时,将数据插入到 `log` 表中:
```
CREATE TRIGGER before_employee_insert
BEFORE INSERT
ON employee FOR EACH ROW
INSERT INTO log (employee_id, action, action_time)
VALUES (NEW.id, 'INSERT', NOW());
```
在触发器中可以使用 `NEW` 和 `OLD` 关键字来访问插入、更新或删除操作前后的数据。`NEW` 表示插入或更新操作后的新数据,`OLD` 表示更新或删除操作前的旧数据。
需要注意的是,MySQL 触发器的创建需要满足以下几个条件:
1. 用户需要拥有 `TRIGGER` 权限。
2. 触发器只能作用于表级别,不能作用于数据库级别。
3. 触发器只能在 MySQL 5.0.2 及以上版本中创建。
4. 触发器只能在 `BEFORE` 或 `AFTER` 关键字后面指定一个事件。
阅读全文