如何在Mysql工作台中复制两个模型之间的表?

时间:2013-06-15 01:55:43

标签: mysql mysql-workbench mysqldump workbench eer-model

我正在做一些数据库的事情,我需要将一个表从一个模型复制到另一个模型,但我尝试了很多方法没有效果。 有没有办法做到这一点?

9 个答案:

答案 0 :(得分:19)

如果你只是想通过MySQL Workbench做一个表。

在MySQL Workbench中:

  1. 连接到MySQL服务器
  2. 展开数据库
  3. 右键单击表格
  4. 选择复制到剪贴板
  5. 选择创建声明
  6. 该表的create语句将被复制到您的剪贴板,类似于以下内容:

       CREATE TABLE `cache` (
      `cid` varchar(255) NOT NULL DEFAULT '',
      `data` longblob,
      `expire` int(11) NOT NULL DEFAULT '0',
      `created` int(11) NOT NULL DEFAULT '0',
      `headers` text,
      `serialized` smallint(6) NOT NULL DEFAULT '0',
      PRIMARY KEY (`cid`),
      KEY `expire` (`expire`)
    ) ENGINE=MyISAM DEFAULT CHARSET=utf8;
    

    在新数据库中创建表

    1. 打开一个新的SQL选项卡以执行查询(文件 - >新查询选项卡)
    2. 更改创建表代码以包含数据库以在其上创建表。

       CREATE TABLE `databaseName`.`cache` (
        `cid` varchar(255) NOT NULL DEFAULT '',
        `data` longblob,
        `expire` int(11) NOT NULL DEFAULT '0',
        `created` int(11) NOT NULL DEFAULT '0',
        `headers` text,
        `serialized` smallint(6) NOT NULL DEFAULT '0',
        PRIMARY KEY (`cid`),
        KEY `expire` (`expire`)
      ) ENGINE=MyISAM DEFAULT CHARSET=utf8;

    3. 然后单击执行按钮(看起来像闪电箭)

    4. 这将使用MySQL工作台将表模式从一个db复制到另一个db。只需刷新数据库中的表,您就会看到新添加的表

答案 1 :(得分:18)

您最好的选择可能是创建一个包含您想要携带的对象的模型的精简版本。然后打开目标模型并运行File -> Include Model...。选择精简的源模型,然后就可以了。

答案 2 :(得分:9)

  1. 选择包含源数据库的选项卡
  2. 在菜单中:服务器 - >数据导出
  3. 选择架构,将表格作为架构对象
  4. 选择选项导出到自包含文件并选中在单个事务中创建转储(仅限自包含)
  5. 将完整文件路径复制到剪贴板
  6. 开始导出
  7. 选择包含目标数据库的标签
  8. 在菜单中:服务器 - >数据导入。确保目标数据库名称位于“数据导入”视图的左上角
  9. 选择从自包含文件导入并从剪贴板粘贴完整文件路径
  10. 选择默认目标架构
  11. 选择转储内容(转储结构和数据等...)
  12. 开始导入

答案 3 :(得分:3)

我认为值得一提的是

  1. 复制的表可能会在要复制的模式中引用原始模式的表中不存在的字段。在将表添加到其他模式之前,检查表是否存在这些差异可能是个好主意。
  2. 检查引擎兼容性(例如InnoDB与MyISAM)和字符集可能是一个好主意。

答案 4 :(得分:0)

像.m_property_nature一样创建表.m_property_nature;

从.m_property_nature中插入* .m_property_nature;

答案 5 :(得分:0)

您可以从表信息中获取板条箱表查询,并在不同的数据库实例上使用相同的查询。

  1. 显示创建表TABLENAME.content并复制查询;
  2. 在连接的另一个Db实例上运行生成的查询。

答案 6 :(得分:0)

您可以仅使用select语句。在这里,我正在创建从“ original_schema”模式/数据库到“ new_schema”模式的“ original_table”表的副本:

CREATE TABLE new_schema.duplicate_table AS
Select * from original_schema.original_table;

您可以只放置所需的任何select语句,添加条件并选择列:

CREATE TABLE new_schema.duplicate_table AS
SELECT column1, column2       
FROM original_schema.original_table
WHERE column2 < 11000000;

答案 7 :(得分:0)

如果您已经创建了表并且只想复制数据,则建议使用“导出数据向导”和“导入数据向导”。它基本上是在程序中选择要导出的东西,然后再导入数据,并且易于使用。

MySQL在以下向导中有一篇文章:Table Data Export and Import Wizard

要使用向导复制数据,请执行以下操作:

  1. 在列表中找到要从中复制数据的表。
  2. 右键单击并选择“表数据导出向导”。
  3. 选择要复制的列。
  4. 选择一个位置来保存带有复制数据的* .csv或* .json文件。

  5. 查找表以将复制的数据插入到其中。

  6. 右键单击并选择“表数据导入向导”。
  7. 选择刚刚导出的文件。
  8. 将复制表中的列映射到插入表中。
  9. 按“完成”。数据随您选择插入。

答案 8 :(得分:0)

第1步:右键单击表格>复制到剪贴板>创建语句

步骤2:将剪贴板粘贴到工作台的查询字段中。

第3步:从表名称和模型名称(模式)中删除(``),后跟点。

例如:`cusine_menus`-> schema_name.cusine_menus

  
    

执行