1. 程式人生 > >表與表之間的同步——觸發器(Oracle)

表與表之間的同步——觸發器(Oracle)

--建立測試表
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;