在DB2是IBM System i的我創建這個觸發對MYLOGTABLE
記錄上MYCHECKEDTABLE
盡一切插入操作:指定觸發的母公司模式在觸發器主體
SET SCHEMA MYSCHEMA;
CREATE TRIGGER MYTRIGGER AFTER INSERT ON MYCHECKEDTABLE
REFERENCING NEW AS ROWREF
FOR EACH ROW BEGIN ATOMIC
INSERT INTO MYLOGTABLE -- after creation becomes MYSCHEMA.MYLOGTABLE
(MMACOD, OPTYPE, OPDATE)
VALUES (ROWREF.ID, 'I', CURRENT TIMESTAMP);
END;
的DBMS存儲觸發器主體與MYSCHEMA.MYLOGTABLE
硬編碼。
現在想象一下,我們將整個模式複製爲新模式NEWSCHEMA
。當我在NEWSCHEMA.MYCHECKEDTABLE
中插入記錄時,日誌記錄將被添加到MYSCHEMA.MYLOGTABLE
而不是NEWSCHEMA.MYLOGTABLE
,即在觸發器及其表格存在的模式中。這是大問題的原因!也因爲許多用戶可以複製模式,而不需要我的控制...
那麼,有沒有一種方法可以在觸發器主體中指定觸發器所在的模式?通過這種方式,我們將在正確的MYLOGTABLE
中寫入日誌記錄。類似PARENT SCHEMA
...或者是否有解決方法? 非常感謝!
謝謝!不幸的是'CURRENT SCHEMA'是默認的模式,或者是在執行'INSERT'之前用'SET SCHEMA'設置的模式。我正在嘗試'GET DESCRIPTOR' ...我必須設置一個描述符然後才能得到它嗎?我很困惑。 – bluish