Home > Database > Mysql Tutorial > Oracle中用于数据备份的触发器及表结构

Oracle中用于数据备份的触发器及表结构

WBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWB
Release: 2016-06-07 15:13:29
Original
1155 people have browsed it

欢迎进入Oracle社区论坛,与200万技术人员互动交流 >>进入 运行本文的示例前,请对当前的数据表的插入、删除、更新等进行记录,并把操作日期、操作者、原来数据、现在数据都作为备份,以便在当前备出现问题的时候能够给以恢复。 注释:最好把备份表放在不同

欢迎进入Oracle社区论坛,与200万技术人员互动交流 >>进入

  运行本文的示例前,请对当前的数据表的插入、删除、更新等进行记录,并把操作日期、操作者、原来数据、现在数据都作为备份,以便在当前备出现问题的时候能够给以恢复。

  注释:最好把备份表放在不同的磁盘上或不同的数据库中:

  1、建立用于数据备份及操作记录的表:

CREATE TABLE AUD_PRGAMD1(
W_ROWID VARCHAR2(50), --行ID
W_ACTION VARCHAR2(1), --操作
DTTM     DATE, --操作日期
OPUSER VARCHAR2(30), --操作者
B$CODE VARCHAR2(10), --原表中的CODE
A$CODE VARCHAR2(10), --现表中的CODE
B$FTY VARCHAR2(1), --原表中的FTY
A$FTY VARCHAR2(1) ?现表中的FTY
);
Copy after login

  2、建立实际数据表:

create table prgamd
(
code varchar2(20),
fty varchar2(20)
)
Copy after login

  3、创建自动备份触发器:

CREATE or replace TRIGGER AUD_PRGAMD_TRIGGER
AFTER INSERT OR UPDATE OR DELETE
ON PRGAMD
FOR EACH ROW
DECLARE
V_ROWID VARCHAR2(50);
V_ACTION VARCHAR2(1);
V_OPUSER VARCHAR(30):='UNKNOW';
BEGIN
IF INSERTING THEN
   V_ROWID:=:NEW.ROWID;
   V_ACTION:='I';
   
 ELSIF UPDATING THEN
   V_ROWID:=:NEW.ROWID; 
   V_ACTION:='U';
   
 ELSIF DELETING THEN
   V_ROWID:=:OLD.ROWID; 
   V_ACTION:='D';   
END IF;
V_OPUSER:=USER;
INSERT INTO AUD_PRGAMD1(
W_ROWID,
W_ACTION,
DTTM,
OPUSER,
B$CODE,
B$FTY,
A$CODE,
A$FTY
)
VALUES(
V_ROWID,
V_ACTION,
SYSDATE,
V_OPUSER,
:OLD.CODE,
:OLD.FTY,
:NEW.CODE,
:NEW.FTY
);
 
END;
Copy after login

  注释:以上的OLD表示被操作表中原来的数据指向,NEW表示被操作表中现在的数据指向。

  4、操作测试:

insert into prgamd 
values('x','x');
select * from AUD_PRGAMD1 
select * from prgamd;
 
update prgamd set code='m1' where fty='x';
commit;
Copy after login

Oracle中用于数据备份的触发器及表结构

source:php.cn
Statement of this Website
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn
Popular Tutorials
More>
Latest Downloads
More>
Web Effects
Website Source Code
Website Materials
Front End Template