MySQL 工作台  / 第9章数据库设计与建模  / 9.4 正向和逆向工程  / 9.4.1 正向工程  /  9.4.1.1 使用 SQL 脚本进行正向工程

9.4.1.1 使用 SQL 脚本进行正向工程

正向工程使您能够创建数据库模型的脚本。您可以导出脚本来更改现有数据库或创建新数据库。创建数据库的脚本类似于使用mysqldump db_name命令创建的脚本。

选择创建数据库会产生其他选项。

9.4.1.1.1 创建模式

打开MySQL 模型 ( model-name.mwb)选项卡,单击文件导出,然后单击Forward Engineer SQL CREATE Script以启动 Forward Engineer SQL 脚本向导。下图显示了向导的第一页。

图 9.36 SQL 导出选项

内容在周围的文字中描述。

SQL 导出选项显示以下工具:

  • 输出 SQL 脚本文件:

    要指定输出文件名,请将其输入到“ 输出 SQL 脚本文件”字段中,或使用“浏览”按钮选择一个文件。将此字段留空以查看但不保存生成的输出。

  • 在每个 CREATE 语句之前生成 DROP 语句

    选择此选项可生成一条语句,将每个对象放在创建它的语句之前。这确保在执行输出时删除每个对象的任何现有实例。

  • 生成 DROP SCHEMA

  • 按字母顺序对表格进行排序

    取消选中此选项时,将根据外键引用对表进行排序。

  • 跳过创建外键

  • 也跳过创建 FK 索引

  • 在对象名称中省略模式限定符

    选择此选项可在 SQL 语句中生成非限定对象名称。

  • 生成 USE 语句

  • 生成单独的 CREATE INDEX 语句

    选择此选项可为索引创建创建单独的语句,而不是在 CREATE TABLE语句中包含索引定义。

  • 在每个 DDL 语句后添加 SHOW WARNINGS

    选择此选项可将SHOW WARNINGS 语句添加到输出。这会导致显示执行输出时生成的任何警告,这对于调试很有用。

  • 不要创建用户。仅出口特权

    选择此选项可更新现有用户的权限,而不是创建新用户。为不存在的用户导出权限将导致执行CREATE脚本时出错。导出已经存在的用户也会导致错误。

  • 不要创建视图占位符表

  • 为表生成 INSERT 语句

    如果您已将任何行添加到表中,请选择此选项。有关插入行的更多信息,请参阅 第 8.1.1 节,“SQL 查询选项卡”

  • 禁用插入的 FK 检查

  • 插入后创建触发器

单击Next打开SQL Object Export Filter页面(参见下图),您可以在该页面中选择要导出的对象。

图 9.37 SQL 对象导出过滤器

为以下类型的 MySQL 对象导出过滤器:表、视图、例程、触发器和用户。

使用显示过滤器微调(过滤)要导出的对象。选择要导出的对象后,单击 隐藏过滤器以隐藏过滤器面板。

选择要导出的对象后,单击 下一步查看生成的脚本。下图显示了要查看的示例脚本。

图 9.38 查看生成的脚本

内容在周围的文字中描述。

您可以使用 返回按钮返回到上一页。

Finish按钮保存脚本文件并退出 。然后您可以使用保存的脚本创建数据库。

9.4.1.1.2 改变模式

用于创建ALTER 脚本文件的菜单项是数据库与任何源同步。通常,当数据库的 SQL 脚本已导入 MySQL Workbench 并发生更改时使用此选项,然后您想要创建一个可以针对数据库执行的脚本以更改它以反映调整后的模型。有关导入 DDL 脚本的说明,请参阅 第 9.4.2.1 节,“使用创建脚本进行逆向工程”

选择DatabaseSynchronize With Any Source菜单项以启动向导。您将看到显示介绍的第一页,然后是用于设置更新源和目标的可用选项。

图 9.39 与任何源同步:选项

内容在周围的文字中描述。

有关其他信息,请参阅 第 9.5.1 节,“数据库同步”