dotnba 2004年04月27日
触发器问题--ora-04091错误,请教
这是一个主从关系的两个表,但是当删除主表记录时,导致ora-04091。
原因是因为在删除子表的时候,导致主表的COPY变化,从而导致ora-04091错误,请问如何主表触发器应该怎么写?并能达到数据完整和一致。

--表EDOCS插入触发器
CREATE OR REPLACE TRIGGER trInsEDOCS
BEFORE INSERT ON EDOCS
FOR EACH ROW
BEGIN
--计数器加1
Update JKARCHVOL21 Set COPY = NVL(COPY,0) + 1
Where VOL_ID = :NEW.VOL_ID;
END trInsEDOCS;
--表EDOCS删除触发器
CREATE OR REPLACE TRIGGER trDelEDOCS
BEFORE DELETE ON EDOCS
FOR EACH ROW
BEGIN
--计数器减1
Update JKARCHVOL21 Set COPY = NVL(COPY,0) - 1
Where VOL_ID = :OLD.VOL_ID;
END trDelEDOCS;
--表JKARCHVOL21删除触发器
CREATE OR REPLACE TRIGGER trDelArch
BEFORE DELETE ON JKARCHVOL21
FOR EACH ROW
BEGIN
--保证数据完整性
Delete From Edocs Where VOL_ID = :OLD.VOL_ID;
END trDelArch;
...全文
252 点赞 收藏 6
写回复
6 条回复

还没有回复,快来抢沙发~

发动态
发帖子
基础和管理
创建于2007-09-28

7173

社区成员

9.5w+

社区内容

Oracle 基础和管理
社区公告
暂无公告