美文网首页
oralce 触发器 ORA-04091:表XX发生了变化,触发

oralce 触发器 ORA-04091:表XX发生了变化,触发

作者: 矩形 | 来源:发表于2021-08-30 10:47 被阅读0次

这句话的意思是 你在触发器/函数中使用了被修改的表

比如我的


create or replace trigger   A.sync_exam_item_branch_to_b
after insert or delete or update on A.Exam_item_branch
for each row
begin

错误用法
  if inserting then
        insert into b.tb00b10(id, item_id, dept_id, is_active)
        select
           t.id,
           (select v.id from b.v_tb00b00_vs_advicetype v where v.code = t.item_id and ROWNUM =1) item_id,
           (select v.id from b.tb00c00 v where v.code = t.BRANCH_ID) dept_id,
           t.STATE is_active --        ,t.*
        from  A.Exam_item_branch  t -- 注意这里,这个表不能被查询
  where t.id = :NEW.id;

  end if ;

正确用法
.......
  if inserting then
      insert into b.tb00b10(id, item_id, dept_id, is_active)
     select
           :new.id,
           (select v.id from b.v_tb00b00_vs_advicetype v where v.code = :new.item_id and ROWNUM =1) item_id,
           (select v.id from b.tb00c00 v where v.code = :new.BRANCH_ID) dept_id,
           :new.STATE is_active
        from   dual  -- 注意 表XX发生了变化,触发器/函数不能读它
           where not exists( select 1 from b.tb00b10 b10 where b10.id = :new.id);
  end if ;
......

end;

相关文章

  • oralce 触发器 ORA-04091:表XX发生了变化,触发

    这句话的意思是 你在触发器/函数中使用了被修改的表 比如我的

  • MySQL学习笔记(六):触发器

    触发器概念 什么是触发器 触发器是一种与表操作有关的数据库对象,当触发器所在表上发生指定事件时,将调用该对象,即表...

  • 2020-12-03触发器

    触发器概念 当表发生改变(insert、update、delete)时触发的动作。 触发器是依赖于表创建,没有表就...

  • Mysql中的触发器

    触发器 MySQL包含对触发器的支持。触发器是一种与表操作有关的数据库对象,当触发器所在表上出现指定事件时,将调用...

  • MySQL学习---触发器

    触发器讲解MySQL包含对触发器的支持。触发器是一种与表操作有关的数据库对象,当触发器所在表上出现指定事件时,将调...

  • MySQL数据库高级(五)——触发器

    一、触发器简介 1、触发器简介 触发器是和表关联的特殊的存储过程,可以在插入,删除或修改表中的数据时触发执行,比数...

  • MySQL触发器

    触发器? Mysql触发器是一种与表操作有关的数据库对象,当触发器所在表上出现指定事件时,将调用该对象,即表的操作...

  • MySQL触发器学习

    触发器是一种与表操作有关的数据库对象。当有触发器的数据表上出现指定事件时,将调用该触发器对象,即表上的操作事件触发...

  • MySQL触发器学习

    触发器是一种与表操作有关的数据库对象。当有触发器的数据表上出现指定事件时,将调用该触发器对象,即表上的操作事件触发...

  • 触发器,存储过程 和 视图初识

    触发器 触发器作用:当操作了某张表时,希望同时触发一些动作/行为,可以使用触发器完成需求: 当向员工表插入一条记录...

网友评论

      本文标题:oralce 触发器 ORA-04091:表XX发生了变化,触发

      本文链接:https://www.haomeiwen.com/subject/miiniltx.html