--创建测试表
CREATE TABLE test(
ID VARCHAR2(15),
NAME VARCHAR2(15)
);
--创建记录测试表
CREATE TABLE test_log(
ID VARCHAR2(15),
NAME VARCHAR2(15)
);
CREATE OR REPLACE TRIGGER trgdemo
AFTER INSERT OR UPDATE OR DELETE
ON TEST FOR EACH ROW
BEGIN
IF INSERTING THEN
INSERT INTO test_log VALUES(:new.ID,:new.NAME);
ELSIF UPDATING THEN
update test_log SET NAME = :new.NAME WHERE ID=:new.ID;
ELSIF DELETING THEN
delete test_log where ID = :old.ID;
END IF;END;
--下面我们来分别执行DML语句
INSERT INTO test VALUES('zhang','a');
INSERT INTO test VALUES('wang','b');
INSERT INTO test VALUES('li','c');
INSERT INTO test VALUES('zhao','d');
UPDATE test SET NAME = 'A' WHERE ID = 'zhang';
UPDATE test SET NAME = 'B' WHERE ID = 'wang';
UPDATE test SET NAME = 'C' WHERE ID = 'li';
UPDATE test SET NAME = 'D' WHERE ID = 'zhao';
DELETE test WHERE ID = 'zhang';
DELETE test WHERE ID = 'li';
--然后查看效果
SELECT * FROM test;
SELECT * FROM test_log;
表与表之间的同步——触发器(Oracle)
最新推荐文章于 2023-05-16 23:38:37 发布