Mysql 我想使用select查询插入到表中;select查询有一个自动递增字段和多条记录

Mysql 我想使用select查询插入到表中;select查询有一个自动递增字段和多条记录,mysql,Mysql,我知道您可以使用: SELECT AUTO_INCREMENT FROM information_schema.tables WHERE table_name = 'myTable' AND table_schema = 'myDatabase' 如果一次插入一行 但是,如果select查询返回多条记录,这将为键“PRIMARY”生成重复条目的错误 INSERT INTO myTable SELECT (SELECT AUTO_INCREMENT FROM information_schema

我知道您可以使用:

SELECT AUTO_INCREMENT
FROM information_schema.tables
WHERE table_name = 'myTable'
AND table_schema = 'myDatabase'
如果一次插入一行

但是,如果select查询返回多条记录,这将为键“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%'
:-)

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


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

只要select查询返回多个唯一值,插入就不会失败。我试图避免这种情况,因为我的实际表中有太多字段,不仅仅是“Customer”,我想这就是解决方法。哦,然后尝试NULL。@ALKELLALLI:迟早会有明确的字段,当表发生变化时,它使部署变得更加容易。NULL选项工作得非常好。谢谢@flaschenpost