有没有办法只导入数据库表模式

eqzww0vc  于 2021-06-20  发布在  Mysql
关注(0)|答案(3)|浏览(520)

我有两个数据库。现在,我尝试只将所有表模式从第一个数据库导入第二个数据库。我已经使用phpmyadmin从第一个数据库导出了所有表结构。但是我无法导入第二个数据库中的表结构。phpmyadmin说 #1050 - Table 'XXXXXX' already exists . 我知道这显然没什么问题。但我的问题是,如何只导入表结构?
注意:两个数据库都有相同的表,并且所有的表都有相同的结构。我已经更改了第一个数据库中的一些表结构,但我现在记不起来了。现在我只需要合并两个表结构。而且两个数据库都包含不同的数据集,我不能承受两个数据库的任何数据丢失。
简而言之,我想从另一个表更新一个表的结构。
提前谢谢。

uplii1fm

uplii1fm1#

在执行任何命令之前,我建议您进行完整的数据库备份,否则您可能会失去几天的睡眠。

使用alter命令

使用 ALTER 命令来修改表结构。下面是一个sql,它向users表中添加了age not nullable age字段。

ALTER TABLE users ADD age int(11) not null

重新创建表

我不推荐这种方法,因为这样会丢失数据。删除旧表,然后使用新架构创建。

DROP TABLE mytable;
CREATE TABLE mytable (
  ...
);

或者,如果您想保留数据,您可以:
将表复制或重命名为其他名称。
使用新架构创建新表。
从旧表复制数据: INSERT INTO newtable SELECT * FROM oldtable 重命名表可能会导致关系问题。我建议使用 ALTER 尽可能地指挥。您还可以查看scheme迁移(aka:code-first迁移、数据库迁移)。

vfwfrxfs

vfwfrxfs2#

你可以试试mysql工作台;它允许你
从mysql数据库创建架构。
通过反向工程db版本3将模式导入mysql工作台,
然后将其与db version 1中的模式进行比较以生成sql alter脚本。

uqjltbpv

uqjltbpv3#

主要问题是合并表。为了识别这两个表之间的差异,我使用了一个名为sqlpowerarchitect的小软件。

相关问题