mysql触发器多语句
时间: 2024-09-20 19:14:05 浏览: 46
MySQL触发器是一种特殊的存储过程,它会在特定的数据库操作(如INSERT、UPDATE或DELETE)发生时自动执行预先定义好的SQL语句序列。触发器可以包含一条或多条SQL语句,用于执行数据验证、业务规则检查、数据审计或历史记录更新等功能。
创建一个多语句触发器的基本语法是这样的:
```sql
CREATE TRIGGER trigger_name
AFTER|BEFORE event_type ON table_name
FOR EACH ROW
BEGIN
-- 多条SQL语句,每个语句之间用分号隔开
SQL statement 1;
SQL statement 2;
...
END;
```
其中:
- `trigger_name`:是你给触发器起的名字。
- `event_type`:可以是`AFTER`表示操作完成后触发,或是`BEFORE`表示操作开始前触发。
- `table_name`:触发器关联的表名。
- `FOR EACH ROW`:表明每行数据操作都会单独触发一次。
例如,如果你想在一个表的插入后更新另一个表,并且如果插入失败则回滚,你可以这样做:
```sql
CREATE TRIGGER after_insert_trigger
AFTER INSERT ON my_table
FOR EACH ROW
BEGIN
UPDATE other_table SET column = NEW.column_value WHERE condition;
IF SQLSTATE <> '00000' THEN
ROLLBACK;
END IF;
END;
```
阅读全文