mysql备份和恢复到具有不同列名的表

发布于 2024-11-28 03:30:29 字数 170 浏览 0 评论 0原文

我有一张表 -customers_old 。我想复制这个表中的所有数据,所以我将使用mysqldump。

我需要将数据恢复到客户新表中,该表的列名与客户旧表不同。

我该怎么做?

INSERT..SELECT 仅用于手动复制每一行?

请指教

谢谢

I have a table - customers_old . I want to copy all the data from this table, so I will use mysqldump.

I need to restore data into a table , customers_new, which has column names different from customers_old table.

How do I do this?

INSERT..SELECT is only for manually copying each row?

Kindly advise

Thanks

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

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

发布评论

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

评论(4

庆幸我还是我 2024-12-05 03:30:30

您可以通过简单的 ctas(创建表 AS)操作来完成此操作:

CREATE TABLE customers_new AS SELECT col1 AS new_col1, col2 AS new_col2 FROM customers_old

通过为旧列添加别名,您可以更改新表中的列名称。

请参阅: http://dev.mysql.com/doc /refman/5.5/en/create-table-select.html

You can do it with a simple ctas (Create Table AS) operation:

CREATE TABLE customers_new AS SELECT col1 AS new_col1, col2 AS new_col2 FROM customers_old

By aliasing your old columns you can change the column names in the new table.

see: http://dev.mysql.com/doc/refman/5.5/en/create-table-select.html

穿透光 2024-12-05 03:30:30

您可以编辑 sql 转储文件中的列和表名称,或者导入新表,然后从旧表执行 INSERT SELECT。

You could either edit the column and tables names in your sql dump file, or import the new table then do a INSERT SELECT from the old table.

抱猫软卧 2024-12-05 03:30:30

您不能直接执行此操作,除非您手动修改转储文件以更改其中的列名称。一种选择是将转储加载到临时数据库/表中,然后执行一些 ALTER TABLE 查询以将列重命名为您想要的任何名称。或者您可以执行 INSERT/SELECT,但最终会得到双倍的数据(新重命名的表/字段 + 旧的原始表/字段)。

You can't do this directly, unless you manually hack up the dump file to change the column names in there. One option would be to load the dump into a temporary database/table and then do some ALTER TABLE queries to rename the columns to whatever you want. Or you could do the INSERT/SELECT, but the you'd end up with double the data (new renamed table/fields + old original table/fields).

半世蒼涼 2024-12-05 03:30:29

扩展 PMV 的答案:

INSERT INTO newtable (column1_new, column2_new, ...) 
  SELECT column1_old, column2_old FROM oldtable

To expand on PMV's answer:

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