如果在图书馆管理系统中添加书籍,则增加值

时间:2016-01-19 10:34:08

标签: oracle plsql database-trigger

create or replace TRIGGER book_s_t3
AFTER INSERT ON trans_s
FOR EACH ROW
begin
    UPDATE book_s
    SET no_of_books = :old.no_of_books + :new.no_of_books;
    WHERE no_of_books = :new.no_of_books;
end;

将错误视为:

Compilation failed, line 3 (10:27:39) The line numbers associated with compilation errors are relative to the first BEGIN statement. This only affects the compilation of database triggers.
PLS-00049: bad bind variable 'OLD.NO_OF_BOOKS'Compilation failed, line 3 (10:27:39) The line numbers associated with compilation errors are relative to the first BEGIN statement. This only affects the compilation of database triggers.
PLS-00049: bad bind variable 'NEW.NO_OF_BOOKS'Compilation failed, line 4 (10:27:39) The line numbers associated with compilation errors are relative to the first BEGIN statement. This only affects the compilation of database triggers.
PLS-00049: bad bind variable 'NEW.NO_OF_BOOKS'Compilation failed, line 4 (10:27:39) The line numbers associated with compilation errors are relative to the first BEGIN statement. This only affects the compilation of database triggers.
PLS-00103: Encountered the symbol "WHERE" when expecting one of the following: ( begin case declare end exception exit for goto if loop mod null pragma raise return select update while with <an identifier> <a double-quoted delimited-identifier> <a bind variable> << continue close current delete fetch lock insert open rollback savepoint set sql execute commit forall merge pipe purge 

1 个答案:

答案 0 :(得分:0)

  

有一些语法错误,无法编译   触发。见下面的代码段

CREATE OR REPLACE TRIGGER book_s_t3 AFTER
  INSERT ON trans_s FOR EACH ROW
  DECLARE
BEGIN
  UPDATE book_s
  SET no_of_books   = :old.no_of_books + :new.no_of_books
  WHERE no_of_books = :new.no_of_books;
END;