mysql 触发器编写
时间: 2023-07-07 20:44:16 浏览: 66
MySQL触发器是一个在MySQL数据库中定义的特殊类型的存储过程,它会在特定的数据表上执行,当这个数据表上发生特定的事件时,触发器会自动执行相应的操作。
下面是一个示例MySQL触发器的代码:
```mysql
CREATE TRIGGER trigger_name
AFTER INSERT ON table_name
FOR EACH ROW
BEGIN
-- 触发器执行的操作
END;
```
其中,`trigger_name`为触发器的名称,`table_name`为触发器所在的数据表名称,`AFTER INSERT`表示触发器会在数据表上执行插入操作后触发,`FOR EACH ROW`表示触发器会为每一行数据都执行一次操作。
下面是一个更具体的示例,这个触发器会在`orders`表上执行插入操作后,自动将相应的产品库存数量减少:
```mysql
CREATE TRIGGER reduce_stock
AFTER INSERT ON orders
FOR EACH ROW
BEGIN
UPDATE products
SET stock = stock - NEW.quantity
WHERE id = NEW.product_id;
END;
```
在这个示例中,`reduce_stock`为触发器的名称,`orders`为触发器所在的数据表名称,`AFTER INSERT`表示触发器会在`orders`表上执行插入操作后触发,`FOR EACH ROW`表示触发器会为每一行数据都执行一次操作。在触发器执行的操作中,我们使用了`UPDATE`语句来更新`products`表中相应的产品库存数量。其中,`NEW.quantity`表示插入的新订单数量,`NEW.product_id`表示插入的新订单所对应的产品ID。
需要注意的是,MySQL触发器有多种类型,包括`AFTER INSERT`、`AFTER UPDATE`、`AFTER DELETE`、`BEFORE INSERT`、`BEFORE UPDATE`、`BEFORE DELETE`等类型,具体的触发器类型应根据实际情况来选择。同时,在编写触发器时应当注意触发器的性能,尽量减少不必要的查询操作,避免对数据库性能造成影响。
阅读全文