83

我正在回滚到 MySQL GUI 工具的 MySQL 查询浏览器,因为我在 MySQL Workbench 中找不到获取表创建脚本的快捷方式。

4

13 回答 13

147

我也找不到这样的选项,至少在社区版中是这样。

我想这对应于逆向工程功能,不幸的是,该功能仅在商业版中可用(引用)

直接从 MySQL 服务器对数据库进行逆向工程仅适用于商业版本的 MySQL Workbench


不过,您可以使用纯 SQL 来获取create table允许您创建表的指令。

例如,以下查询:

show create table url_alias;

在 drupal 数据库上执行时,click > copy field content在结果上使用 right 时会给出:

'CREATE TABLE `url_alias` (
  `pid` int(10) unsigned NOT NULL auto_increment,
  `src` varchar(128) NOT NULL default '''',
  `dst` varchar(128) NOT NULL default '''',
  `language` varchar(12) NOT NULL default '''',
  PRIMARY KEY  (`pid`),
  UNIQUE KEY `dst_language` (`dst`,`language`),
  KEY `src_language` (`src`,`language`)
) ENGINE=InnoDB AUTO_INCREMENT=1 DEFAULT CHARSET=utf8'

不幸的是(再次),MySQL Workbench 在以这种方式复制时到处添加一些引号:-(


编辑:使用 MySQL 8.0,可以选择正确click > copy field (unquoted)的结果以获得不带引号的所需结果。


最后,除了使用 MySQL 查询浏览器之外,最简单的解决方案很可能是使用命令行客户端连接到数据库,然后show create table从那里执行查询:

mysql> show create table url_alias\G
*************************** 1. row ***************************
       Table: url_alias
Create Table: CREATE TABLE `url_alias` (
  `pid` int(10) unsigned NOT NULL auto_increment,
  `src` varchar(128) NOT NULL default '',
  `dst` varchar(128) NOT NULL default '',
  `language` varchar(12) NOT NULL default '',
  PRIMARY KEY  (`pid`),
  UNIQUE KEY `dst_language` (`dst`,`language`),
  KEY `src_language` (`src`,`language`)
) ENGINE=InnoDB AUTO_INCREMENT=1 DEFAULT CHARSET=utf8
1 row in set (0.00 sec)

获得输出的“正确部分”更容易,没有要删除的引号。



而且,为了完整起见,您还可以使用mysqldump来获取表的结构:

mysqldump --no-data --user=USERNAME --password=PASSWORD --host=HOST DATABASE_NAME TABLE_NAME

使用--no-data开关,您只会得到结构——在一些模式设置和所有这些的中间

于 2010-03-19T18:01:08.330 回答
55

要获取单个表的创建脚本,只需右键单击表名,然后单击复制到剪贴板 > 创建语句。

要启用 File > Forward Engineering SQL_CREATE Script.. 选项并获取整个数据库的创建脚本:

  1. 数据库 > 逆向工程师 (Ctrl+R)
  2. 完成创建 EER 图的步骤
  3. 查看 EER 图时,单击 File > Forward Engineering SQL_CREATE Script... (Ctrl+Shift+G)
于 2011-05-19T18:24:28.543 回答
28

右键单击相关表并选择以下之一:

  • 复制到剪贴板 > 创建语句
  • 发送到 SQL 编辑器 > 创建语句

这似乎对我有用。

于 2010-07-13T22:09:50.073 回答
6

它位于服务器管理而不是 SQL 开发中。

  • 在主屏幕中,从最右侧的服务器管理部分中选择您的数据库所在的数据库服务器实例。
  • 从右侧的菜单中选择数据导出
  • 选择要导出的数据库并选择一个位置。
  • 单击开始导出。
于 2012-12-07T23:21:20.487 回答
5

只需使用:

show create table <table_name>
于 2010-03-18T21:27:17.847 回答
5

我来这里是为了寻找同一个问题的答案。但我自己找到了一个更好的答案。

In the tables list, if you right-click on the table name there is a suite of CRUD script generation options in "Send to SQL Editor". You can select multiple tables and take the same approach too.

我的 MySQL Workbench 版本:5.2.37

于 2012-06-13T15:31:23.517 回答
3

不确定我是否完全理解您的问题,但如果只是创建导出脚本,您应该将工程师转发到 SQL 脚本 - Ctrl + Shift + G 或文件 -> 导出 -> 第一个选项。

于 2010-03-12T13:59:58.573 回答
2

1 使用命令

show create table test.location

在此处输入图像描述

  1. 右键单击所选行并选择在查看器中打开值

  2. 选择标签文本 在此处输入图像描述

于 2015-11-19T04:30:04.927 回答
2

MySQL Workbench 6.3E 解决方案

  • 在左侧面板上,右键单击您的表格并选择“表格检查器”
  • 在中心面板上,单击 DDL 标签
于 2017-08-29T15:28:09.080 回答
1

在“模型概述”或“图表”中,只需右键单击表格,您就有以下选项:“复制插入到剪贴板”或“将 SQL 复制到剪贴板”

于 2011-06-24T15:01:59.350 回答
1

不确定这是否仍然是一个问题,但对我来说,在 5.2.35CE 中,可以通过以下方式获取创建脚本:

  1. 数据库 --> 逆向工程师

  2. 在存储连接下,选择您的数据库

  3. 点击“下一步”几次,选择你想要逆向工程的模式,然后让工具工作

  4. 您将获得包含所有数据库模式的“EER 图”视图。如果您右键单击您关心的表并选择“将 SQL 复制到剪贴板”,我认为您将拥有所需的内容。

希望这可以帮助其他需要它的人。

于 2012-04-11T00:02:44.503 回答
1
  1. 打开 MySQL 工作台 (6.3 CE)
  2. 在“导航器”中选择“管理”
  3. 然后选择“数据导出”(这里选择要导出的创建脚本的表)
  4. 在下拉菜单中选择“转储结构和数据”
  5. 选中复选框“包括创建架构”
  6. 单击“开始导出”按钮 导出完成后,它将显示导出文件在系统中转储的位置。转到该位置并打开导出的文件以找到表创建脚本。

或检查https://dev.mysql.com/doc/workbench/en/wb-admin-export-import-management.html

于 2018-10-15T14:41:29.987 回答
0

您可以使用MySQL Proxy及其脚本系统在终端中实时查看 SQL 查询。

于 2014-02-28T07:38:05.663 回答