在Lend表上创建一个DELETE触发器tr3,当从Lend表中删除一条借阅记录(即归还一本书)后,将Reader表中该读者的已借数量减1,同时将Book表中该图书的库存量加1。
时间: 2024-03-09 16:46:40 浏览: 86
实现图书记录的删除功能
3星 · 编辑精心推荐
以下是在Lend表上创建DELETE触发器tr3的示例代码,实现删除一条借阅记录后更新Reader表和Book表的操作:
```
CREATE TRIGGER tr3
ON Lend
FOR DELETE
AS
BEGIN
DECLARE @readerId INT
DECLARE @bookId INT
SELECT @readerId = ReaderId, @bookId = BookId FROM deleted
UPDATE Reader
SET BorrowedCount = BorrowedCount - 1
WHERE ReaderId = @readerId
UPDATE Book
SET Stock = Stock + 1
WHERE BookId = @bookId
END
```
该触发器假设Lend表中的每条记录都包含ReaderId和BookId这两个外键字段,分别指向Reader表和Book表中对应的记录。当从Lend表中删除一条记录时,该触发器会先从被删除的记录中获取ReaderId和BookId,然后分别更新Reader表和Book表中对应记录的BorrowedCount和Stock字段。请注意,该触发器只会在删除Lend表中的记录时触发,不会在插入或更新操作时触发。
阅读全文