用MYSQL创建一个insert 触发器t_book1,用于在表order中插入一笔订单时,同步修改表book中的stock数据。
时间: 2023-07-15 17:15:48 浏览: 45
可以使用以下SQL语句创建一个名为t_book1的insert触发器:
```
CREATE TRIGGER t_book1 AFTER INSERT ON `order`
FOR EACH ROW
BEGIN
UPDATE book SET stock = stock - NEW.quantity WHERE book_id = NEW.book_id;
END;
```
这个触发器会在`order`表中插入一条新订单时被触发,然后执行一条`UPDATE`语句,将`book`表中对应的书籍的`stock`字段减去新订单中的数量。其中`NEW.quantity`表示新订单中的数量,`NEW.book_id`表示新订单中的书籍 ID,`book_id`则是`book`表中书籍的 ID 字段。
相关问题
用MYSQL创建一个insert触发器t_book1,用于在表order中插入字段ordernum时,同步修改表book中的stock数据。
可以使用以下代码创建一个MySQL的触发器t_book1,实现在表order插入数据时同步修改表book的stock字段:
```
CREATE TRIGGER t_book1 AFTER INSERT ON order
FOR EACH ROW
BEGIN
UPDATE book SET stock = stock - NEW.quantity WHERE id = NEW.book_id;
END;
```
假设在order表中有字段book_id和quantity,表示订单中购买的书籍ID和数量。在插入一条新的订单数据时,触发器会自动执行UPDATE语句,将book表中对应书籍的库存减去订单中购买的数量。这样就可以保证book表中的库存数据与order表中的订单数据保持一致。
用MYSQL创建一个delete触发器t_order,用于在表`order`中撤销(即删除一个订单)一笔订单时,同步修改表book中的字段stock。
可以使用以下代码创建一个名为`t_order`的delete触发器:
```
CREATE TRIGGER t_order AFTER DELETE ON `order`
FOR EACH ROW
BEGIN
UPDATE book SET stock = stock + OLD.quantity WHERE book_id = OLD.book_id;
END;
```
这个触发器会在`order`表中删除一条记录时触发,然后将对应书籍的库存数量加上被删除订单中的数量。其中`OLD`代表被删除的行的旧值。在这个例子中,我们假设`order`表中有一个名为`quantity`的字段表示订单中书籍的数量,同时`book`表中有一个名为`stock`的字段表示书籍的库存数量。这个触发器可以确保在删除订单时,相应的书籍库存会正确地被更新。