如何在MySQL Workbench中获取表创建脚本?

时间:2010-03-12 13:54:08

标签: mysql mysql-workbench

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

13 个答案:

答案 0 :(得分:109)

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

我认为这与 Reverse Engineering 功能相对应,不幸的是,该功能仅在商业版(引用)中提供

  

逆向工程数据库   直接来自MySQL服务器适用   到商业版的MySQL   仅限工作台


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

例如,以下查询:

show create table url_alias;

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

'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 Query Browser之外,最简单的解决方案很可能是使用命令行客户端连接到数据库,并执行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开关,您只能获得结构 - 在某些模式设置的中间以及所有

答案 1 :(得分:45)

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

启用文件>正向工程SQL_CREATE脚本..选项并获取整个数据库的创建脚本:

  1. 数据库>逆向工程师(Ctrl + R)
  2. 完成创建EER图的步骤
  3. 查看EER图表时,单击文件>正向工程SQL_CREATE脚本...(Ctrl + Shift + G)

答案 2 :(得分:19)

右键单击相关表格,然后选择以下任一项:

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

这似乎对我有用。

答案 3 :(得分:5)

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

  • 从主屏幕中,从最右侧的服务器管理部分选择数据库所在的数据库服务器实例。
  • 从右侧菜单中选择数据导出
  • 选择要导出的数据库并选择一个位置。
  • 点击开始导出。

答案 4 :(得分:4)

show create table

答案 5 :(得分:3)

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

答案 6 :(得分:3)

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

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

答案 7 :(得分:1)

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

答案 8 :(得分:1)

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

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

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

  3. 点击“下一步”几次,选择要进行逆向工程的架构,让工具正常工作

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

  5. 希望这有助于其他需要它的人。

答案 9 :(得分:1)

1使用命令

show create table test.location

enter image description here

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

  2. 选择标签文字 enter image description here

答案 10 :(得分:1)

MySQL Workbench 6.3E的解决方案

  • 在左侧面板上,右键单击您的表格并选择“Table Inspector”
  • 在中心面板上,单击DDL标签

答案 11 :(得分:0)

您可以使用MySQL Proxy及其scripting system在终端中实时查看SQL查询。

答案 12 :(得分:0)

  1. 打开MySQL Workbench(6.3 CE)
  2. 在“导航器”中,选择“管理”
  3. 然后选择“数据导出”(在此处选择要导出其创建脚本的表)
  4. 在下拉菜单中选择“转储结构和数据”
  5. 选中复选框“包括创建模式”
  6. 单击按钮“开始导出” 导出完成后,它将显示导出文件在系统中的转储位置。转到该位置并打开导出的文件以查找表创建脚本。

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