有什么办法只能导入数据库表架构

时间:2018-07-16 07:36:36

标签: mysql database database-schema

我有两个数据库。现在,我尝试仅将所有表架构从第一个数据库导入到第二个数据库。我已经使用phpmyadmin从第一个数据库导出所有表结构。但是我不能在第二个数据库中导入表结构。 phpmyadmin说#1050 - Table 'XXXXXX' already exists。我知道这显然没有错。但是,这是我的问题,我如何仅导入表结构?

注意:两个数据库都有相同的表,并且所有表都具有相同的结构。我在第一个数据库中更改了一些我现在不记得的表结构。现在我只需要合并两个表结构。同样,两个数据库都包含不同的数据集,我无法承受两个数据库的任何数据丢失。

简而言之,我想从另一个表更新一个表的结构。

非常感谢。

3 个答案:

答案 0 :(得分:1)

方法1

您可以使用ALTER sql命令来更改存在表的结构。

例如:如果要向表 users 中添加新字段,则:

ALTER TABLE users ADD myfield int(11) not null

您可以从official documentation中了解有关alter table的更多信息。

方法2

您可以删除旧表并再次运行模式命令(导入模式)。

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

但是在这种方法中,旧数据将被删除。

方法3

  1. 复制现有表

    • 将所有现有表复制到新数据库并删除旧表。
    • 或重命名现有表
  2. 导入架构(如果删除或重命名了所有表,将不会发生错误)

  3. 将数据复制到已创建的表

您可以使用描述hereINSERT INTO SELECT方法将数据从一个表复制到另一个表。

INSERT INTO newtable SELECT * FROM oldtable;

答案 1 :(得分:0)

您可以尝试使用MySQL工作台;它允许您

  • 从MySQL数据库创建架构。
  • 通过反向工程将架构导入MySQL工作台 数据库版本3,
  • ,然后将其与数据库版本1中的模式进行比较以生成SQL 更改脚本。

答案 2 :(得分:0)

主要问题是合并表格。为了确定两个表之间的差异,我使用了一个名为 SQL Power Architect 的小型软件。