mysql备份并还原到具有不同列名的表

mysql备份并还原到具有不同列名的表,mysql,restore,Mysql,Restore,我有一张旧桌子。我想复制这个表中的所有数据,所以我将使用mysqldump 我需要将数据恢复到一个表customers\u new中,该表的列名不同于customers\u old表 我该怎么做 插入..选择仅用于手动复制每行 恳请告知 谢谢您可以编辑sql转储文件中的列和表名称,或者导入新表,然后从旧表执行插入选择。您可以编辑sql转储文件中的列和表名称,或者导入新表,然后从旧表执行插入选择。您不能直接执行此操作,除非您手动修改转储文件以更改其中的列名。一种选择是将转储加载到临时数据库/表中,

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

我需要将数据恢复到一个表customers\u new中,该表的列名不同于customers\u old表

我该怎么做

插入..选择仅用于手动复制每行

恳请告知


谢谢

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

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

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

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

要扩展PMV的答案:

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

要扩展PMV的答案:

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

您可以通过一个简单的ctas(创建表格为)操作完成此操作:

CREATE TABLE customers_new AS SELECT col1 AS new_col1, col2 AS new_col2 FROM customers_old
通过对旧列使用别名,可以更改新表中的列名


请参阅:

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

CREATE TABLE customers_new AS SELECT col1 AS new_col1, col2 AS new_col2 FROM customers_old
通过对旧列使用别名,可以更改新表中的列名


请参阅:

Alter table将数据复制到一个新表中,然后删除旧表,因此这种方法的差异比您想象的要小。只有在更改数据类型的情况下。重命名列并不能做到这一点。我想破解转储文件是一种方法。一旦我有了工作内容,我就会发回。Alter table将数据复制到一个新表中,然后删除旧表,因此这种方法的差异比您想象的要小。只有在更改数据类型的情况下。重命名列并不能做到这一点。我想破解转储文件是一种方法。我会发回一旦我有工作