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