0
我已經爲表T1,INSERT事件寫了一個觸發器,它將在另一個表(T2)中插入相同的行。但是我的要求是,在T2中插入記錄後,它應該從T1中刪除。能否請你建議..需要在觸發表上立即刪除Oracle觸發器插入值
我已經爲表T1,INSERT事件寫了一個觸發器,它將在另一個表(T2)中插入相同的行。但是我的要求是,在T2中插入記錄後,它應該從T1中刪除。能否請你建議..需要在觸發表上立即刪除Oracle觸發器插入值
我建議你做到以下幾點:
1 - 創建一個程序插入到T2:
CREATE OR REPLACE PROCEDURE yourname (IN values YOURTYPE) IS
PRAGMA AUTONOMOUS_TRANSACTION;
BEGIN
INSERT INTO T2 (...) VALUES (...);
COMMIT;
END
/
2-調用AFTER INSERT
觸發T1
3-在此之後回滾觸發器中的事務。 應該取消第一次插入。
請注意,它會損害交易的任何其他操作。
+1另外請注意,如果您回滾主事務,您仍然會在T2中創建一個新行。 –
看起來,基於'哪個會插入相同的行','它應該從T1中刪除',所以根本不需要在'T1'中插入一行。或者你沒有告訴你什麼? –
我明白了。但因爲我的要求只是這樣。 – Srinivasan
可能T1是一個視圖而不是一個表? –