mysql的触发器
时间: 2023-06-29 08:03:50 浏览: 104
MySQL的触发器是一种特殊的存储过程,它与表相关联,并在特定事件发生时自动执行。这些事件可能是INSERT、UPDATE、DELETE等语句的执行。
触发器通常用于实现数据库约束、审计跟踪、日志记录和复杂业务逻辑等功能。MySQL支持两种类型的触发器:行级触发器和语句级触发器。
行级触发器是在每次对表中的一行数据进行修改时触发执行。语句级触发器则是在对表进行修改时触发执行,而不是针对每行数据进行修改。
创建触发器的语法如下:
```sql
CREATE TRIGGER trigger_name
{BEFORE | AFTER} {INSERT | UPDATE | DELETE}
ON table_name FOR EACH ROW
BEGIN
-- 触发器执行的SQL语句
END;
```
其中,`trigger_name`是触发器的名称,`BEFORE`或`AFTER`表示触发器的执行时间,`INSERT`、`UPDATE`或`DELETE`表示触发器的事件类型,`table_name`是触发器所关联的表名,`FOR EACH ROW`表示触发器是行级触发器,`BEGIN`和`END`之间是触发器要执行的SQL语句。
例如,下面的代码创建了一个行级触发器,在每次向`orders`表插入数据时,自动计算并更新`customers`表中每个客户的订单总数:
```sql
CREATE TRIGGER update_order_count
AFTER INSERT ON orders FOR EACH ROW
BEGIN
UPDATE customers SET order_count = order_count + 1 WHERE customer_id = NEW.customer_id;
END;
```
在这个触发器中,`NEW`是一个关键字,表示插入的新行数据。当插入一条新的订单记录时,触发器会自动更新该订单对应的客户的订单总数。
阅读全文