首页 > 数据库 > > oracle执行触发器时报死锁错误
今天在写一个触发器时遇到一个死锁问题,但不知道问题出在哪儿,这个触发器主要是用处是在
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/ ,如需转载,请注明出处,否则将追究法律责任。