无法让我的触发器工作

时间:2014-01-23 15:31:39

标签: sql oracle

CREATE TRIGGER noOfBooks
AFTER INSERT ON BooKLoan 
FOR EACH ROW
BEGIN 
   UPDATE Book SET noOfLoan=noOfLoans + 1  
   WHERE Bookloan.bookTitle= :new.bookTitle;
END;
/

(每次将书名输入表BookLoan中的新贷款行后,在表书中为书名添加一个noOfLoans列)

有人可以帮我解决这个问题吗?

1 个答案:

答案 0 :(得分:1)

在此处做一些疯狂的假设,每次插入关联的Book.noOfLoans记录时,您希望增加BookLoan,代码中至少有2个问题:

UPDATE Book 
   SET noOfLoan=noOfLoan + 1  
   WHERE Book.bookTitle = :new.bookTitle;
  1. noOfLoan或noOfLoans但不是两者

  2. 由于触发器位于Bookloan,并且您似乎想要更新Book,因此您需要对Book.bookTitle进行过滤,而不是Bookloan(因为new 1}}伪行已经是Bookloan行)