在不枚举字段的情况下复制mysql表中的行

在不枚举字段的情况下复制mysql表中的行,mysql,auto-increment,temp-tables,Mysql,Auto Increment,Temp Tables,此mysql表有一个自动增量字段。我想复制一些行。我想我会用一张临时桌子: CREATE TEMPORARY TABLE tmptab SELECT * FROM mytab WHERE somecondition = 1; 在将数据复制回mytab之前,我现在可以在tmptab中进行一些更新 UPDATE tmptab ... /* some updates */; 因为mytab有一个自动递增字段,所以我不能简单地将tmptab的内容复制到mytab。一种解决方案是枚举字段(并省略自动递

此mysql表有一个自动增量字段。我想复制一些行。我想我会用一张临时桌子:

CREATE TEMPORARY TABLE tmptab SELECT * FROM mytab WHERE somecondition = 1;
在将数据复制回mytab之前,我现在可以在tmptab中进行一些更新

UPDATE tmptab ... /* some updates */;
因为mytab有一个自动递增字段,所以我不能简单地将tmptab的内容复制到mytab。一种解决方案是枚举字段(并省略自动递增字段)

我正在寻找一个不枚举字段的解决方案。这有一些优点,例如,当稍后添加字段时

我认为我可以删除tmptab中的autoincrement字段(删除autoincrement列),然后使用类似于此的查询:

INSERT INTO mytab SELECT *  FROM tmptab;
这样行吗?mytab中的自动增量字段应设置正确。还是有更好的方法

我认为我可以删除tmptab中的autoindex字段(删除autoindex列),然后使用类似于此的查询

您需要使用如下命令:

UPDATE tmptab SET key_column=NULL
当您将空值插入到原始表中时,它将生成新的自动增量ID

您可能需要添加一个命令来删除temp表上的主键索引,以使其正常工作

我认为我可以删除tmptab中的autoindex字段(删除autoindex列),然后使用类似于此的查询

您需要使用如下命令:

UPDATE tmptab SET key_column=NULL
当您将空值插入到原始表中时,它将生成新的自动增量ID

您可能需要添加一个命令来删除temp表上的主键索引,以使其正常工作