2013-09-26 71 views
0

我已經爲表T1,INSERT事件寫了一個觸發器,它將在另一個表(T2)中插入相同的行。但是我的要求是,在T2中插入記錄後,它應該從T1中刪除。能否請你建議..需要在觸發表上立即刪除Oracle觸發器插入值

+0

看起來,基於'哪個會插入相同的行','它應該從T1中刪除',所以根本不需要在'T1'中插入一行。或者你沒有告訴你什麼? –

+0

我明白了。但因爲我的要求只是這樣。 – Srinivasan

+1

可能T1是一個視圖而不是一個表? –

回答

2

我建議你做到以下幾點:

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-在此之後回滾觸發器中的事務。 應該取消第一次插入。

請注意,它會損害交易的任何其他操作。

+0

+1另外請注意,如果您回滾主事務,您仍然會在T2中創建一個新行。 –