mysql触发器实例
时间: 2023-08-27 14:12:22 浏览: 124
MySQL 触发器详解及简单实例
5星 · 资源好评率100%
当数据库中的特定事件发生时,MySQL触发器可以自动执行一系列操作。以下是一个简单的MySQL触发器实例,当在"orders"表中插入新的订单时,触发器会自动更新"customers"表中对应客户的订单总数。
首先,创建一个"customers"表:
```sql
CREATE TABLE customers (
id INT PRIMARY KEY AUTO_INCREMENT,
name VARCHAR(50),
total_orders INT
);
```
然后,创建一个"orders"表:
```sql
CREATE TABLE orders (
id INT PRIMARY KEY AUTO_INCREMENT,
customer_id INT,
order_date DATE
);
```
接下来,创建一个触发器:
```sql
DELIMITER //
CREATE TRIGGER update_total_orders
AFTER INSERT ON orders
FOR EACH ROW
BEGIN
UPDATE customers
SET total_orders = total_orders + 1
WHERE id = NEW.customer_id;
END;
//
DELIMITER ;
```
在这个触发器中,我们指定了它在"orders"表的插入操作之后执行(AFTER INSERT ON orders),并且为每个插入的行都执行一次(FOR EACH ROW)。触发器通过UPDATE语句更新"customers"表中对应客户的订单总数,使用NEW关键字引用插入的行数据。
现在,当你向"orders"表中插入一条新订单时,触发器会自动更新对应客户的订单总数:
```sql
INSERT INTO orders (customer_id, order_date)
VALUES (1, CURDATE());
```
你可以通过查询"customers"表来验证触发器是否生效:
```sql
SELECT * FROM customers;
```
这是一个简单的MySQL触发器实例,你可以根据自己的需求调整触发器的逻辑和操作。
阅读全文