我知道你可以使用:
SELECT AUTO_INCREMENT
FROM information_schema.tables
WHERE table_name = 'myTable'
AND table_schema = 'myDatabase'
如果我一次插入一行
但如果选择查询返回多个记录,则这将为键"PRIMARY"生成重复条目的错误
INSERT INTO myTable SELECT (SELECT AUTO_INCREMENT FROM information_schema.tables WHERE table_name = 'myTable' AND table_schema = 'myDatabase') AS Customer_ID, Customer FROM myTable2 WHERE Customer LIKE '%Tech%'
这要容易得多:
INSERT INTO myTable (Customer) SELECT Customer FROM myTable2 WHERE Customer LIKE '%Tech%'
:-)
编辑(解释):这就是AUTO_INCREMENT的真正含义,你可以简单地忽略它,它会得到一个未使用的数字。我认为您也可以将NULL作为值,它将被转换为"下一个自由值"。
尽管如此,使用@variables,您也可以轻松地创建行号等,但这是为更有趣的问题保留的。