Oracle数据库中利用Trigger监控删除数据操作

来源:百度知道 编辑:UC知道 时间:2024/07/04 18:11:57
我们系统里有张表总是莫名其妙地丢数据,因为系统太复杂,从上层查不出头绪,所以打算从数据库中用Trigger监控删除记录的操作。数据库是Oracle10g。可是我不太懂Oracle,也没写过Oracle的存储过程,所以来求助高人。

情景如下:
现有表A和与它关联的表B,现在要建一个Trigger,当表A中的记录被删除时,把被删除的记录原样复制到另一个表LogA中,同时把跟被删除记录关联的B表中的记录复制到表LogB中(B表中的记录不会被删除,只是做个快照记录下当时的状态)。

在LogA表中,还必须要记录下执行删除操作的用户ID和删除的确切时间。

我给你写一个。稍等,我先占个头坑。

请告诉我B表跟A表的关系,以及关联字段。
谢谢。
QQ 17369841

CREATE OR REPLACE TRIGGER TR_COPY_DATA
BEFORE DELETE ON A
FOR EACH ROW
BEGIN
INSERT INTO LOGA(A的字段1,A的字段2,A的字段3,delete_id,DELETE_TIME)
VALUES(:old.A的字段1,:old.A的字段2,:old.A的字段3,USER,SYSDATE)
;

INSERT INTO LOGB SELECT B.* FROM A,B WHERE A.*** = B.***
;

END TR_COPY_DATA ;