J'ai les deux tableaux suivants:
Table1
----------
ID Name
1 A
2 B
3 C
Table2
----------
ID Name
1 Z
J'ai besoin d'insérer des données de Table1
à Table2
. Je peux utiliser la syntaxe suivante:
INSERT INTO Table2(Id, Name) SELECT Id, Name FROM Table1
Cependant, dans mon cas, des identifiants en double peuvent exister dans Table2
(dans mon cas, c'est juste " 1
") et je ne veux pas copier à nouveau car cela générerait une erreur.
Je peux écrire quelque chose comme ça:
IF NOT EXISTS(SELECT 1 FROM Table2 WHERE Id=1)
INSERT INTO Table2 (Id, name) SELECT Id, name FROM Table1
ELSE
INSERT INTO Table2 (Id, name) SELECT Id, name FROM Table1 WHERE Table1.Id<>1
Existe-t-il une meilleure façon de faire cela sans utiliser IF - ELSE
? Je veux éviter deux INSERT INTO-SELECT
déclarations basées sur une condition.