首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在不枚举字段的情况下复制mysql表中的行

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

Stack Overflow用户
提问于 2010-11-14 09:27:07
回答 1查看 397关注 0票数 1

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

代码语言:javascript
复制
CREATE TEMPORARY TABLE tmptab SELECT * FROM mytab WHERE somecondition = 1;

在将数据复制回mytab之前,我现在可以在tmptab中进行一些更新。

代码语言:javascript
复制
UPDATE tmptab ... /* some updates */;

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

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

我想我可以删除tmptab中的自动增量字段(删除自动增量列),然后使用类似下面的查询:

代码语言:javascript
复制
INSERT INTO mytab SELECT *  FROM tmptab;

这样行得通吗?应该正确设置mytab中的自动增量字段。还是有更好的方法呢?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2010-11-14 09:47:32

我认为我可以删除tmptab中的自动索引字段(删除自动索引列),然后使用类似下面的查询

您需要使用如下命令:

代码语言:javascript
复制
UPDATE tmptab SET key_column=NULL

当您将NULL插入回原始表中时,它将生成新的auto_increment ids。

您可能需要添加一个命令来删除临时表上的主键索引,这样才能正常工作。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/4175672

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档