我想使用select查询插入表中; select查询具有自动增量字段和多个记录

时间:2014-04-21 13:12:26

标签: mysql

我知道你可以使用:

SELECT AUTO_INCREMENT
FROM information_schema.tables
WHERE table_name = 'myTable'
AND table_schema = 'myDatabase'

如果我一次插入一行

但是这会产生一个错误的重复输入密钥' PRIMARY'如果select查询返回多个记录

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%'

1 个答案:

答案 0 :(得分:1)

这更容易:

INSERT INTO myTable (Customer) SELECT Customer FROM myTable2 WHERE Customer LIKE '%Tech%'

: - )

编辑(解释):这是真正意义上的AUTO_INCREMENT,你可以简单地把它留下来,它会得到一个未使用的数字。我认为您也可以将NULL作为值,这将被转换为“下一个自由值”。

尽管如此,使用@variables,您还可以轻松创建行号等,但这样可以保留更多有趣的问题。