ITPub博客

首页 > 数据库 > > oracle执行触发器时报死锁错误

oracle执行触发器时报死锁错误

作者:castlight 时间:2019-09-16 10:24:48 0 删除 编辑

今天在写一个触发器时遇到一个死锁问题,但不知道问题出在哪儿,这个触发器主要是用处是在

T_BS_ORDERDETAIL表做增删改操作时给主表

T_BS_ORDERINFO重新合计重量体积及数量

CREATE OR REPLACE TRIGGER TRIGGER_ORDERDETAIL
  AFTER DELETE OR INSERT OR UPDATE ON T_BS_ORDERDETAIL
  FOR EACH ROW
DECLARE
  PRAGMA AUTONOMOUS_TRANSACTION;
BEGIN
  UPDATE T_BS_ORDERINFO A
     SET A.N_ZL      =
         (SELECT SUM(B.N_ZL)
            FROM T_BS_ORDERDETAIL B
           WHERE B.I_ID_ORDER = :NEW.I_ID_ORDER),
         A.N_TJ      =
         (SELECT SUM(B.N_TJ)
            FROM T_BS_ORDERDETAIL B
           WHERE B.I_ID_ORDER = :NEW.I_ID_ORDER),
         A.I_ALLCOUNT =
         (SELECT SUM(B.I_COUNT)
            FROM T_BS_ORDERDETAIL B
           WHERE B.I_ID_ORDER = :NEW.I_ID_ORDER)
   WHERE A.ID = :NEW.I_ID_ORDER;
    COMMIT;
END;

新增时没报错,但修改时就报以下错误

来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/1470/viewspace-3139649/ ,如需转载,请注明出处,否则将追究法律责任。

请登录后发表评论 登录
全部评论

注册时间:2019-04-15

  • 博文量
    102
  • 访问量
    1241