子表:movie (movieid(pk),toolid(fk))
父表:tool(toolid(pk))
当删除tool的时候把movie中的toolid字段置为空,老提示错误如下:
ORA-04091: 表 ANDY.MOVIE 发生了变化,触发器/函数不能读
ORA-06512: 在"ANDY.TD_TOOL", line 9
ORA-04088: 触发器 'ANDY.TD_TOOL' 执行过程中出错触发器内容如下:
ALTER TABLE movie
       ADD  ( FOREIGN KEY (toolid)
                             REFERENCES tool
                             ON DELETE SET NULL ) ;create or replace trigger tD_tool after DELETE on tool for each row
declare numrows INTEGER;
begin
       update movie
          set
               movie.toolid = NULL
          where
               movie.toolid = :old.toolid;
-- ERwin Builtin Thu Apr 06 19:27:52 2006
end;
/