我想要有一個'updateinfo'表來記錄每個更新/插入/刪除操作在另一個表上。如何使用SQL觸發器來記錄受影響的列的行號
在oracle中我寫的:
CREATE TABLE updateInfo時(rnumber NUMBER(10),表名VARCHAR2(100字節),動作VARCHAR2(100字節),UPDATE_DATE日期)
DROP TRIGGER TRI_TABLE ;
CREATE OR REPLACE TRIGGER TRI_TABLE
後刪除或插入或更新
ON演示
REFERENCING NEW半新不舊舊
FOR EACH ROW
BEGIN
如果然後插入
INSERT INTO updateInfo時(rnumber,表名,action,update_date)值(rownum,'demo','insert',sysdate);
elsif update then
insert into updateinfo(rnumber,tablename,action,update_date)values(rownum,'demo','update',sysdate);
elsif刪除然後
insert into updateinfo(rnumber,tablename,action,update_date)values(rownum,'demo','delete',sysdate);
end if;
- EXCEPTION
- WHEN OTHERS THEN
- 考慮記錄錯誤,然後重新加註
- RAISE;
END TRI_TABLE;
但是當檢查updateinfo時,所有的rnumber列都是零。 是否有檢索正確的行號?
從這裏得出的結論是,在關係數據模型中,沒有「行號」這樣的概念 - 概念根本不適用。 – 2010-04-15 13:07:36