创建触发器,实现若修改借阅表中借阅状态为"已还",则同时修改库存表中库存状态为"在馆"
时间: 2023-12-29 14:03:29 浏览: 53
java中创建两表之间的触发器详解
在MySQL中,可以使用触发器来实现这个功能。触发器是一种特殊的存储过程,它会在指定的事件发生时自动执行一些操作。
下面是创建触发器的SQL语句:
```
CREATE TRIGGER update_inventory AFTER UPDATE ON borrow
FOR EACH ROW
BEGIN
IF NEW.status = '已还' THEN
UPDATE inventory SET status = '在馆' WHERE id = NEW.inventory_id;
END IF;
END;
```
解释一下上面的SQL语句:
- `update_inventory`是触发器的名称;
- `AFTER UPDATE ON borrow`表示该触发器会在`borrow`表中有记录被更新后触发;
- `FOR EACH ROW`表示对于每一行更新都会触发该触发器;
- `BEGIN`和`END`之间的代码块是该触发器的操作;
- `NEW`关键字表示被更新的记录的新值,`OLD`关键字表示被更新的记录的旧值;
- `IF NEW.status = '已还' THEN`表示如果新的借阅状态为"已还",则执行下面的代码;
- `UPDATE inventory SET status = '在馆' WHERE id = NEW.inventory_id;`表示将库存表中相应的记录的状态修改为"在馆"。
这样,当借阅表中有记录被更新且借阅状态为"已还"时,就会自动触发该触发器,将库存表中相应的记录的状态修改为"在馆"。
阅读全文