我有两个数据库。现在,我尝试只将所有表模式从第一个数据库导入第二个数据库。我已经使用phpmyadmin从第一个数据库导出了所有表结构。但是我无法导入第二个数据库中的表结构。phpmyadmin说 #1050 - Table 'XXXXXX' already exists
. 我知道这显然没什么问题。但我的问题是,如何只导入表结构?
注意:两个数据库都有相同的表,并且所有的表都有相同的结构。我已经更改了第一个数据库中的一些表结构,但我现在记不起来了。现在我只需要合并两个表结构。而且两个数据库都包含不同的数据集,我不能承受两个数据库的任何数据丢失。
简而言之,我想从另一个表更新一个表的结构。
提前谢谢。
3条答案
按热度按时间uplii1fm1#
在执行任何命令之前,我建议您进行完整的数据库备份,否则您可能会失去几天的睡眠。
使用alter命令
使用
ALTER
命令来修改表结构。下面是一个sql,它向users表中添加了age not nullable age字段。重新创建表
我不推荐这种方法,因为这样会丢失数据。删除旧表,然后使用新架构创建。
或者,如果您想保留数据,您可以:
将表复制或重命名为其他名称。
使用新架构创建新表。
从旧表复制数据:
INSERT INTO newtable SELECT * FROM oldtable
重命名表可能会导致关系问题。我建议使用ALTER
尽可能地指挥。您还可以查看scheme迁移(aka:code-first迁移、数据库迁移)。vfwfrxfs2#
你可以试试mysql工作台;它允许你
从mysql数据库创建架构。
通过反向工程db版本3将模式导入mysql工作台,
然后将其与db version 1中的模式进行比较以生成sql alter脚本。
uqjltbpv3#
主要问题是合并表。为了识别这两个表之间的差异,我使用了一个名为sqlpowerarchitect的小软件。