2016-10-28 106 views
0

我目前正在使用IBM dashDB,並且如果此行尚不存在基於某些條件的標準,我需要知道插入新行的sql語句。所以,像這樣:IBM dashDB sql語句「插入行如果不存在」

INSERT INTO tablexyz (Col1, Col2, Col3) VALUES (val1, val2, val3) IF NOT EXIST (SELECT * FROM tablexyz WHERE val1 = x, val2 = y) 

我該怎麼做?

回答

1

根據上下文,您可以在(Col1,Col2)上定義主鍵或唯一索引,並在存在重複的情況下讓簡單插入失敗。或者定義一個運行Select並檢查返回碼的過程。但是,與您的SQL示例最接近的匹配是MERGE語句,如

MERGE into tablexyz 
using (values (1,2,9)) newdata(val1,val2,val3) 
on tablexyz.Col1 = newdata.val1 and tablexyz.Col2 = newdata.val2 
when not matched then insert values(val1,val2,val3);