2011-04-08 34 views
0


我有兩個具有相同結構的表。表1具有多個可以具有相同值的行。現在我想插入相同的行到表2中,不包括重複的行。我能夠通常使用'減'來做到這一點,但我想寫一個觸發器,如果​​一個新行插入到表1中並且不存在於表2中,則插入表2中,否則不會。我是觸發器的新手。我已經寫觸發給我,當我在表中插入1如果數據不存在,則使用觸發器插入表中

INSERT INTO T3(1,名稱,NUM1,NUM2)選擇1,名稱,NUM1,NUM2從T1組的「觸發變異」錯誤1,名稱,NUM1,NUM2減去SELECT * FROM T3

當我寫上面的代碼,它工作正常,但是當我到包括我的觸發此提示錯誤

。我如何在觸發器的幫助下執行上述操作?

請幫幫忙,

感謝
Pranay

回答

1

你並不需要從行級觸發器重新查詢表。這就是:NEW.語法是什麼,例如:

INSERT INTO t3(name1,name2,num1,num2) 
select :NEW.name1,:NEW.name2,:NEW.num1,:NEW.num2 from DUAL 
minus select name1,name2,num1,num2 from t3; 

雖然我覺得上面的代碼看起來有點傻。我寧願在t3上設置一個唯一的約束,然後在觸發器中添加一個處理程序來處理任何異常。

相關問題