mysql触发器实现库存更新
时间: 2023-07-07 11:27:44 浏览: 428
可以通过MySQL触发器实现库存更新。具体步骤如下:
1. 创建一个保存商品信息的表,例如Product表,其中包括商品ID、商品名称、商品价格和商品库存等字段。
2. 创建一个保存订单信息的表,例如Order表,其中包括订单ID、购买商品ID、购买数量、购买时间等字段。
3. 创建一个触发器,在Order表中插入一条订单记录时,自动更新Product表中对应商品的库存数量。
触发器的创建语句如下:
```
CREATE TRIGGER update_inventory AFTER INSERT ON Order
FOR EACH ROW
BEGIN
UPDATE Product SET inventory = inventory - NEW.quantity WHERE id = NEW.product_id;
END;
```
其中,`update_inventory`是触发器的名称,`AFTER INSERT ON Order`表示在Order表中插入一条记录后触发,`FOR EACH ROW`表示对每一行记录都执行触发器中的操作。`NEW`关键字表示新插入的订单记录,`NEW.quantity`表示订单中购买的数量,`NEW.product_id`表示购买的商品ID。`UPDATE`语句用于更新Product表中对应商品的库存数量。
通过这个触发器,当订单表插入一条新记录时,就会自动更新对应商品的库存数量。
相关问题
mysql【触发器】创建触发器,实现若修改借阅表中借阅状态为"已还”,则同时修改库存表中库存状态为“在馆”
可以使用以下 MySQL 语句来创建触发器实现该需求:
```
CREATE TRIGGER update_inventory_status AFTER UPDATE ON borrow
FOR EACH ROW
BEGIN
IF NEW.status = '已还' THEN
UPDATE inventory SET status = '在馆' WHERE book_id = NEW.book_id;
END IF;
END;
```
该触发器会在 borrow 表中的一条记录被修改后执行。如果该记录的 status 字段被修改为 '已还',则会更新 inventory 表中对应书籍的 status 字段为 '在馆'。需要注意的是,该触发器假设 borrow 表中有一个 book_id 字段用于与 inventory 表中的书籍进行关联。如果 borrow 表中没有这个字段,需要根据实际情况进行修改。
阅读全文