create trigger Book_return_Stock after update on Borrow for each row begin IF NEWselect.ReturnTime IS NOT NULL THEN UPDATE book SET Stock = Stock + 1 where BookID = New.BookID; end if; end; UPDATE Borrow SET ReturnTime = '2023-06-09' WHERE BookID = '1002' AND ReaderID = '20230101';
时间: 2024-03-26 15:34:30 浏览: 51
book_borrow_system.zip_Book 2_book borrow_book_borrow system_图书借
这个SQL语句包括了创建触发器和执行更新语句两部分。在这里需要注意的是,语句中的NEWselect是一个错误的别名,应该是NEW。正确的触发器代码如下:
```
CREATE TRIGGER Book_return_Stock AFTER UPDATE ON Borrow
FOR EACH ROW
BEGIN
IF NEW.ReturnTime IS NOT NULL THEN
UPDATE book SET Stock = Stock + 1 WHERE BookID = NEW.BookID;
END IF;
END;
```
这个触发器的作用是,当Borrow表的某一行更新后,判断是否已经归还(即ReturnTime是否为NULL),如果已经归还,则将相应图书库存加1。注意,这个触发器中的book表和Borrow表必须存在,并且book表中必须有一个Stock字段。
接下来的UPDATE语句是用来测试这个触发器的,它将Borrow表中BookID为1002、ReaderID为20230101的借阅记录的归还时间设置为2023年6月9日。执行这个UPDATE语句后,如果触发器设置正确,那么book表中相应图书的库存应该会加1。
阅读全文