J'essaie de faire une seule ligne d'insertion / mise à jour sur une table, mais tous les exemples sont pour les ensembles.
Quelqu'un peut-il corriger ma syntaxe s'il vous plaît:
MERGE member_topic ON mt_member = 0 AND mt_topic = 110
WHEN MATCHED THEN UPDATE SET mt_notes = 'test'
WHEN NOT MATCHED THEN INSERT (mt_member, mt_topic, mt_notes) VALUES (0, 110, 'test')
La résolution par marc_s est de convertir la ligne unique en sous-requête - ce qui me fait penser que la commande MERGE n’est pas vraiment destinée aux upserts à une seule ligne.
MERGE member_topic
USING (SELECT 0 mt_member, 110 mt_topic) as source
ON member_topic.mt_member = source.mt_member AND member_topic.mt_topic = source.mt_topic
WHEN MATCHED THEN UPDATE SET mt_notes = 'test'
WHEN NOT MATCHED THEN INSERT (mt_member, mt_topic, mt_notes) VALUES (0, 110, 'test');