将mysql数据传输到新的数据库结构

时间:2011-12-01 16:46:19

标签: mysql

我有一个包含数据的mysql数据库。我想更改数据库表结构。(向某些表添加一些新列,添加新表)。将数据保存在数据库中,这可以完成并且没问题。但我想从早期的数据库导出数据到新修改的数据库。这意味着,我有数据库的结构没有数据,我更改表并添加新表到数据库。然后我想导出数据(在早期的数据库)到新修改的数据库。这里,可以导出一个一个表。但是如果有更多的表和更多的列,我怎样才能在一个pc和一个mysql服务器上完成这个?

1 个答案:

答案 0 :(得分:1)

如果您使用mysqldump并省略DDL语句(-t选项)以及使用完整插入(-c选项),您应该能够获取旧表的数据和将其插入新表中没有问题。

但是,这确实假设您不是要更改任何表/字段的名称/类型,而只是添加新的+不同的字段。如果您要更改表名和/或字段名,那么最好将转储导入单独的临时数据库并执行insert ... select from类型查询,您可以在其中指定新的字段映射。


$ mysqldump -p -t -c name_of_db table1 table2 table3 ... > dump.sql
$ mysql -p name_of_other_db < dump.sql
  

-p =提示输入密码(如果您的mysql用户名与系统登录名的用户名不匹配,可能需要-u用户名)
  -t =跳过表创建
  -c =使用完整插入