Mam następujące dwie tabele:
Table1
----------
ID Name
1 A
2 B
3 C
Table2
----------
ID Name
1 Z
Muszę wstawić dane od Table1
do Table2
. Mogę użyć następującej składni:
INSERT INTO Table2(Id, Name) SELECT Id, Name FROM Table1
Jednak w moim przypadku zduplikowane identyfikatory mogą istnieć w Table2
(w moim przypadku jest to po prostu „ 1
”) i nie chcę ich ponownie kopiować, ponieważ spowodowałoby to błąd.
Mogę napisać coś takiego:
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
Czy jest lepszy sposób na zrobienie tego bez używania IF - ELSE
? Chcę uniknąć dwóch INSERT INTO-SELECT
stwierdzeń opartych na jakimś warunku.