我做了一個更新後的觸發器,我打算用它作爲審計日誌來更改源表中的主記錄。一切都按預期工作,除非我查看觸發器的定義,我可以看到它解析了MYLIB.NMF00PAUDI和OTBL的所有列,這意味着我必須爲添加到源和審計表中的每個列重新創建此觸發器。DB2觸發器OLD_TABLE動態列
我可以以某種方式保留SELECT *嗎?這樣我只需要修改源和審計表。
CREATE TRIGGER MYLIB.NMF00PAUDIT
AFTER UPDATE ON MYLIB.NMF00P
REFERENCING OLD_TABLE AS OTBL
FOR EACH ROW
MODE DB2SQL
BEGIN ATOMIC
INSERT INTO MYLIB . NMF00PAUDI
SELECT * FROM OTBL
;
END
變爲這個當我查看定義:
BEGIN ATOMIC
INSERT INTO MYLIB . NMF00PAUDI (COL1, COL2, COL3)
SELECT COL1, COL2, COL3 FROM OTBL
;
END
您是否嘗試過更改源代碼和審計表以及您的觸發器會發生什麼? DB2跟蹤對象之間的依賴關係並重新綁定/重新編譯它們(如果有更改)。 –