Bir otomatik artış sütununa ekleyebilir ve bir değer belirleyebilirsiniz. Bu iyi; otomatik artış üretecini geçersiz kılar.
NULL veya 0 değerini girmeye çalışırsanız veya DEFAULT
INSERT ifadenizdeki sütunlardan otomatik artış sütununu atlarsanız, otomatik artış üreteci etkinleştirilir.
Yani, bu iyi INSERT INTO table1 SELECT * FROM table2
(bu arada, parantez gerekmez). İd değerleri, o bu araçlar table2
aynen kopyalanmış olacak ve table1
olacak değil yeni değerler üretmek.
Eğer varsa istediğiniz table1
yeni değerler üretmek, yapamayacağınız SELECT *
. Kimlik sütunu için null veya 0 kullanırsınız:
INSERT INTO table1 SELECT 0, col1, col2, col3, ... FROM table2;
Ya da sütunu hem INSERT deyiminin sütun listesinden hem de SELECT deyiminin seçim listesinden çıkarırsınız:
-- No id in either case:
INSERT INTO table1 (col1, col2, col3) SELECT col1, col2, col3, ... FROM table2;
Sormadan önce, SQL'de "bir sütun hariç" select * "sözdizimi yoktur. Eklemek istediğiniz sütun adlarının tam listesini yazmanız gerekir.