6.在borrow表创建名为“t_after_update_borrow”的触发器,要求在更新borrow表的数据之后—— 如果该记录更新前rdate字段是null,更新之后为not null,并且更新前后bno没有变化,那么设置book表中bno与borrow表更新后bno字段相同的记录的可用数量available的值,让它的值增加1。 如果该记录更新前后rdate字段都是null,并且更新前后bno有变化,那么设置book表中bno与borrow表更新前bno字段相同并且available小于number的记录的可用数量available的值,让它的值增加1;另外还要设置book表中bno与borrow表更新后bno字段相同的记录的可用数量available的值,让它的值减少1。 book表字段有bno,bname,number,available borrow表字段有bno,rdate 在借图书的在借数量(rdate为null表示未归还,即处于在借状态)实现该sql语句,并以$结尾
时间: 2023-12-03 17:42:21 浏览: 74
CREATE TRIGGER t_after_update_borrow
AFTER UPDATE ON borrow
FOR EACH ROW
BEGIN
DECLARE old_rdate DATE;
DECLARE new_rdate DATE;
DECLARE old_bno INT;
DECLARE new_bno INT;
SET old_rdate = OLD.rdate;
SET new_rdate = NEW.rdate;
SET old_bno = OLD.bno;
SET new_bno = NEW.bno;
IF old_rdate IS NULL AND new_rdate IS NOT NULL AND old_bno = new_bno THEN
UPDATE book SET available = available + 1 WHERE bno = new_bno;
END IF;
IF old_rdate IS NULL AND new_rdate IS NULL AND old_bno != new_bno THEN
UPDATE book SET available = available + 1 WHERE bno = old_bno AND available < number;
UPDATE book SET available = available - 1 WHERE bno = new_bno;
END IF;
END$
```
阅读全文