Saya memiliki dua tabel berikut:
Table1
----------
ID Name
1 A
2 B
3 C
Table2
----------
ID Name
1 Z
Saya perlu memasukkan data dari Table1
hingga Table2
. Saya dapat menggunakan sintaks berikut:
INSERT INTO Table2(Id, Name) SELECT Id, Name FROM Table1
Namun, dalam kasus saya, ID duplikat mungkin ada Table2
(dalam kasus saya, ini hanya " 1
") dan saya tidak ingin menyalinnya lagi karena itu akan menimbulkan kesalahan.
Saya bisa menulis sesuatu seperti ini:
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
Apakah ada cara yang lebih baik untuk melakukan ini tanpa menggunakan IF - ELSE
? Saya ingin menghindari dua INSERT INTO-SELECT
pernyataan berdasarkan beberapa kondisi.