Задать вопрос
@Yumado

Как продолжить INSERT если значение существует? Как вставить по списку? Как обойти ошибку duplicate key?

INSERT INTO DT1._tbl1 (pole1, pole2 ...)
SELECT (pole1, pole2 ...) from DT2._tbl1
WHERE NOT EXISTS
(SELECT 1 FROM DT1._tbl1 WHERE DT1._tbl1.pole1 IN
(' 1NK74CNB',
' 1NK6ZCNB',
' 1NK6XCNB',
' 1NK6UCNB',
' 1NINCCNB',
' 1NK71CNB',
' 1O5TXCNB'
))
AND DT2.tbl1. pole2 = '123'

Таких значений в целевой таблице нет, но по списку (WHERE IN) не добавляет, если есть (WHERE NOT EXISTS).
1) Это возможно - добавлять по списку?
Если добавить без контроля существующих значений (без WHERE NOT EXISTS), тогда вставка начинается, но обрывается на существующем значении.
Cannot insert duplicate key row in object 'DT1.tbl1' with unique index 'pole3'.
2) Как продолжить INSERT если значение существует?
3)Как обойтись без списка в коде? Можно подсунуть файл со значениями?
  • Вопрос задан
  • 50 просмотров
Подписаться 1 Простой Комментировать
Пригласить эксперта
Ответы на вопрос 1
@alexalexes
Вам не insert чистый нужен, а merge.
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы