在oracle数据库中创建一个触发器,当records表删除一条借阅信息,在books对应的书籍库存量加1,当records表添加一条借阅信息,在books对应的书籍库存量减1。
时间: 2023-12-26 09:05:58 浏览: 62
好的,以下是创建触发器的SQL语句:
```sql
CREATE OR REPLACE TRIGGER update_books_stock
AFTER DELETE OR INSERT ON records
FOR EACH ROW
DECLARE
book_id number;
BEGIN
IF DELETING THEN
-- 删除借阅信息,图书库存量加1
SELECT book_id INTO book_id FROM records WHERE id = :OLD.id;
UPDATE books SET stock = stock + 1 WHERE id = book_id;
ELSIF INSERTING THEN
-- 添加借阅信息,图书库存量减1
SELECT book_id INTO book_id FROM records WHERE id = :NEW.id;
UPDATE books SET stock = stock - 1 WHERE id = book_id;
END IF;
END;
/
```
该触发器在records表的DELETE或INSERT操作后触发,使用IF语句判断操作类型。对于DELETE操作,从records表中取出book_id,然后在books表中将对应书籍的库存量加1;对于INSERT操作,同样从records表中取出book_id,然后在books表中将对应书籍的库存量减1。需要注意的是,该触发器是针对每一行数据进行操作的,因此需要使用FOR EACH ROW语句来指定。
阅读全文