很抱歉,如果在我找不到答案之前已经询问过这个问题。
我有2个数据库,它们的结构相同,只是数据库1有一些额外的列。数据库2中的数据稍微更新一些。
所以:
数据库1在某些表中有一些额外的列。
数据库2没有这些列,但其余表中的数据更新。
所以我想将数据库2中的数据导入到数据库1中,覆盖数据库1中的数据。但是我想保留数据库1中现有的额外列,这些列在数据库2中不存在。
Mysqldump显然会覆盖数据库1中的所有内容,这将无法正常工作。有太多的表和列让我知道额外的列在database1中的位置。所以我需要一个程序化的解决方案。
感谢您的帮助或指出我正确的方向!
答案 0 :(得分:0)
尝试在phpmyadmin中导出数据,选择仅导出数据,而不是导出结构。然后将该数据导入到包含更多列的数据库中。
这显然有局限性。我假设添加的列是唯一的区别,所有非空列都有默认值,并且改进的数据库没有需要保留的数据。
这是关于我们可以在不知道确切的表结构的情况下提供的所有建议。
重要建议
将来跟踪SQL文件中的修改,您可以稍后将其应用于数据库的其他副本。通常更容易将更改(新列)应用于数据库,而不是在两个不同的数据库之间复制数据。
这些脚本通常称为迁移。
答案 1 :(得分:0)
有一个名为SQLYog的工具可以完成您想要的任务。它具有区分和同步两个不同数据库模式的能力。我倾向于做的是这样的事情: