在不重新创建MySQL表的情况下恢复数据

在不重新创建MySQL表的情况下恢复数据,mysql,Mysql,这听起来可能是个愚蠢的问题,但在谷歌上找不到任何东西,可能是使用了错误的关键词 无论如何,我一直在做一个项目,版本1有一个MySQL数据库。我准备发布到版本2,但是数据库表有一些变化,例如额外的列 如果我用数据备份当前数据库并创建具有新结构的数据库。如何将旧数据库中的数据添加到新数据库中 我知道将现有数据添加到新数据库结构不会有任何问题,因为现有字段没有更改,只是增加了列 感谢您的帮助。请考虑使用解决此问题 关键是获取数据库中的新字段并将其附加到实体的末尾,如下所示: ALTER TABLE m

这听起来可能是个愚蠢的问题,但在谷歌上找不到任何东西,可能是使用了错误的关键词

无论如何,我一直在做一个项目,版本1有一个MySQL数据库。我准备发布到版本2,但是数据库表有一些变化,例如额外的列

如果我用数据备份当前数据库并创建具有新结构的数据库。如何将旧数据库中的数据添加到新数据库中

我知道将现有数据添加到新数据库结构不会有任何问题,因为现有字段没有更改,只是增加了列

感谢您的帮助。

请考虑使用解决此问题

关键是获取数据库中的新字段并将其附加到实体的末尾,如下所示:
ALTER TABLE myTable ADD COLUMN(…进一步规范…)

MySQL将扩展表并将新字段设置为您指定的默认值。然后,您可以在旧数据的基础上分层任何新数据,只要不存在冲突,正如您所描述的

当在线解决方案很昂贵时,选项B是使用,然后更改输出以适应新的表规范。只要列正确对齐(在最坏的情况下,这可能需要一个简单的正则表达式来解析),您就应该能够通过它将数据重新创建到新模式中


另请参见,.

在本例中,我使用了
mysqldump
,类似于

mysqldump --host=localhost --user=root --no-create-db --no-create-info --complete-insert --extended-insert

这将生成带有列名的完整插入,因此您可能不必担心最终的表结构,如果您不更改列名,在这种情况下,甚至列的顺序也可能会更改。

使用PHPwhy您需要重新创建数据库吗?为什么不把列添加到现有的字段中,如下所述。这将涉及到遍历每个表并添加所有更改以匹配开发机器。我在寻找一个更简单的一步解决方案。即恢复新的数据库结构,并从旧数据库导入现有数据