2016-12-27 7 views
0

Мое заявление:MERGE DB2 не INSERTwhen НЕ MATCHED

MERGE INTO tblshoppingcart AS target USING 
(SELECT * FROM tblshoppingcart 
WHERE session_id = 'f7f2eb03-5ca5-4a85-b83e-70f197c087ae ' AND primlink = '19830625000054' AND store = 17 AND catalog = 'SS3' AND quantity = 35 AND item_type = 0) AS source 
ON target.primlink = source.primlink AND 
target.session_id = source.session_id AND target.item_type = source.item_type 
     WHEN NOT MATCHED THEN 
     INSERT VALUES ('f7f2eb03-5ca5-4a85-b83e-70f197c087ae', '19830625000054', 17, 'SS3', 'PAS', 35, 5, '', 0) 
WHEN MATCHED THEN 
UPDATE SET quantity = 15 

Когда соответствовали UPDATE отлично работает

Когда не совпадут с INSERT не выдаст ошибку, но ничего не вставить либо.

ответ

1

Попробуйте изменить КОГДА НЕ MATCHED ТОГДА к:

WHEN NOT MATCHED BY TARGET THEN 
+1

TARGET будучи в SQL ключевое слово, вы можете захотеть изменить цель псевдонима Т или что-то, что не конфликтует с ключевыми словами. – Alex

+0

Спасибо, за репсоны я обнаружил, что проблема заключается в том, что я передавал жестко заданные значения, но когда я использовал имена источников/целей, они работали! – rojobo

0

Спасибо, за repsonses я нашел, чтобы этот вопрос я проходил жестко закодированные значения, но когда я использовал источник/целевые имена он работал.

Таким образом, вместо INSERT VALUES ('f7f2eb03-5ca5-4a85-b83e-70f197c087ae'

я INSERT VALUES (target.session

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

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