MySQL 创建触发器语句
时间: 2024-10-24 19:18:46 浏览: 31
在MySQL中,创建触发器是一种预定义事件的机制,当特定的表操作(比如INSERT、UPDATE或DELETE)发生时,它们会自动执行事先定义好的SQL语句。触发器的基本语法如下:
```sql
CREATE TRIGGER trigger_name
AFTER|BEFORE event_type ON table_name
FOR EACH ROW
BEGIN
-- 触发器执行的SQL语句块
INSERT INTO log_table (event, old_data, new_data) VALUES ('ACTION', OLD.column, NEW.column);
END;
```
这里的关键部分包括:
- `trigger_name`: 你要为触发器起的名字。
- `AFTER|BEFORE`: 指定事件何时触发,`AFTER`在操作完成后执行,`BEFORE`则在操作开始前执行。
- `event_type`: 可能是`INSERT`, `UPDATE`, 或`DELETE`.
- `table_name`: 触发器关联的操作数据表名。
- `FOR EACH ROW`: 指示每次操作每行都会触发一次这个触发器。
- `BEGIN...END`: 包含要执行的SQL语句。
例如,创建一个在插入新记录时更新另一个计数字段的简单触发器:
```sql
CREATE TRIGGER increment_count
AFTER INSERT ON orders
FOR EACH ROW
BEGIN
UPDATE products SET stock = stock - 1 WHERE product_id = NEW.product_id;
END;
```
阅读全文