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

发布于 2024-10-02 03:36:15 字数 544 浏览 8 评论 0原文

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

CREATE TEMPORARY TABLE tmptab SELECT * FROM mytab WHERE somecondition = 1;

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

UPDATE tmptab ... /* some updates */;

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

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

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

INSERT INTO mytab SELECT *  FROM tmptab;

这可行吗? mytab 中的自动增量字段应设置正确。或者有更好的方法吗?

This mysql table has an autoincrement field. I want to duplicate some rows. I thought I will use a temporary table:

CREATE TEMPORARY TABLE tmptab SELECT * FROM mytab WHERE somecondition = 1;

Before copying the data back to mytab I can now do some updates in tmptab.

UPDATE tmptab ... /* some updates */;

Because mytab has an autoincrement field I cannot simply copy the contents of tmptab to mytab. One solution would be to enumarate fields (and omit the autoincrement field).

I am looking for a solution without enumerating fields. This has advantages, for instance when fields will be added later.

I thougth I could erase the autoincrement field in tmptab (removing the autoincrement column) and then use a query similar to this one:

INSERT INTO mytab SELECT *  FROM tmptab;

Would this work? The autoincrement field in mytab should be set correctly. Or is there a better way to do it?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

梦幻的味道 2024-10-09 03:36:15

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

您需要使用如下命令:

UPDATE tmptab SET key_column=NULL

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

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

I thougth I could erase the autoindex field in tmptab (removing the autoindex column) and then use a query similar to this one

You need to use a command like this:

UPDATE tmptab SET key_column=NULL

When you insert NULLs back into the original table, it will generate new auto_increment ids.

You might need to add a command to drop the primary key index on the temp table for this to work.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文