У мене є дві наступні таблиці:
Table1
----------
ID Name
1 A
2 B
3 C
Table2
----------
ID Name
1 Z
Мені потрібно вставити дані від Table1
до Table2
. Я можу використовувати наступний синтаксис:
INSERT INTO Table2(Id, Name) SELECT Id, Name FROM Table1
Однак у моєму випадку дублікати ідентифікаторів можуть існувати в Table2
(у моєму випадку це просто " 1
"), і я не хочу копіювати це знову, як це призведе до помилки.
Я можу написати щось подібне:
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
Чи є кращий спосіб зробити це без використання IF - ELSE
? Я хочу уникати двох INSERT INTO-SELECT
тверджень, заснованих на якійсь умові.