2016-10-28 3 views
0

В настоящее время я работаю с IBM dashDB, и мне нужно знать инструкцию sql для вставки новой строки, если эта строка еще не существует на основе определенных критериев. Итак, что-то вроде этого:IBM dashDB sql statement for "insert row if not existing existing"

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

Как это сделать?

ответ

1

В зависимости от контекста вы можете определить первичный ключ или уникальный индекс (Col1, Col2) и разрешить простую вставку Insert, если есть дубликат. Или определите процедуру, которая запускает 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); 

 Смежные вопросы

  • Нет связанных вопросов^_^