Ich habe die folgenden zwei Tabellen:
Table1
----------
ID Name
1 A
2 B
3 C
Table2
----------
ID Name
1 Z
Ich muss Daten von Table1
bis einfügen Table2
. Ich kann die folgende Syntax verwenden:
INSERT INTO Table2(Id, Name) SELECT Id, Name FROM Table1
In meinem Fall sind jedoch möglicherweise doppelte IDs vorhanden Table2
(in meinem Fall ist es nur " 1
"), und ich möchte diese nicht erneut kopieren, da dies einen Fehler auslösen würde.
Ich kann so etwas schreiben:
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
Gibt es einen besseren Weg, dies ohne Verwendung zu tun IF - ELSE
? Ich möchte zwei INSERT INTO-SELECT
Aussagen vermeiden , die auf einer bestimmten Bedingung beruhen.