Aşağıdaki iki tablom var:
Table1
----------
ID Name
1 A
2 B
3 C
Table2
----------
ID Name
1 Z
İle arasında veri eklemem Table1
gerekiyor Table2
. Aşağıdaki sözdizimini kullanabilirim:
INSERT INTO Table2(Id, Name) SELECT Id, Name FROM Table1
Bununla birlikte, benim durumumda, içinde yinelenen kimlikler olabilir Table2
(benim durumumda, sadece " 1
") ve bir hata oluşturacağı için bunu tekrar kopyalamak istemiyorum.
Bunun gibi bir şey yazabilirim:
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
Bunu kullanmadan yapmanın daha iyi bir yolu var mı IF - ELSE
? Bir INSERT INTO-SELECT
koşula bağlı olarak iki ifadeden kaçınmak istiyorum .