Oracle 我正在递增该值并将其更新到表中
将错误获取为:Oracle 我正在递增该值并将其更新到表中,oracle,plsql,triggers,Oracle,Plsql,Triggers,将错误获取为: create or replace trigger trans_s_t5 after insert on trans_s for each row begin update :old.no_of_books set book_no=:old.no_of_books+1 where book_no=:trans_s.book_no; end; 似乎您正试图更改此触发器中TRANS_S表中的字段值,该值在TRANS_S表中定义。如果是这样,您可以通过将触发器更改为BEFORE触发器
create or replace trigger trans_s_t5
after insert
on trans_s
for each row
begin
update :old.no_of_books
set book_no=:old.no_of_books+1
where book_no=:trans_s.book_no;
end;
似乎您正试图更改此触发器中TRANS_S表中的字段值,该值在TRANS_S表中定义。如果是这样,您可以通过将触发器更改为BEFORE触发器并直接更新字段来完成此操作,如中所示:
PLS-00049: bad bind variable 'OLD.NO_OF_BOOKS' Compilation failed, line 3
PLS-00049: bad bind variable 'OLD.NO_OF_BOOKS' Compilation failed, line 4
PLS-00049: bad bind variable 'TRANS_S.BOOK_NO' Compilation failed, line 2
PL/SQL: ORA-00903: invalid table name Compilation failed, line 2 (10:11:17)
PL/SQL: SQL Statement ignored
祝你好运。你想更新什么?一张桌子?不能对表使用:old和:new。只有特定的列和什么是:trans_s?发布您的表结构
create or replace trigger trans_s_t5
BEFORE insert on trans_s
for each row
begin
:NEW.NO_OF_BOOKS := :NEW.NO_OF_BOOKS + 1;
end;