Tôi có hai bảng sau:
Table1
----------
ID Name
1 A
2 B
3 C
Table2
----------
ID Name
1 Z
Tôi cần chèn dữ liệu từ Table1
đến Table2
. Tôi có thể sử dụng cú pháp sau:
INSERT INTO Table2(Id, Name) SELECT Id, Name FROM Table1
Tuy nhiên, trong trường hợp của tôi, các ID trùng lặp có thể tồn tại Table2
(trong trường hợp của tôi, đó chỉ là " 1
") và tôi không muốn sao chép lại vì điều đó sẽ gây ra lỗi.
Tôi có thể viết một cái gì đó như thế này:
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
Có cách nào tốt hơn để làm điều này mà không cần sử dụng IF - ELSE
không? Tôi muốn tránh hai INSERT INTO-SELECT
tuyên bố dựa trên một số điều kiện.