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

Jad*_*ias 68 mysql mysql-workbench

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

Pas*_*TIN 117

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

我认为这与逆向工程功能相对应,遗憾的是,该功能仅在商业版(引用)中提供:

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


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

例如,以下查询:

show create table url_alias;
Run Code Online (Sandbox Code Playgroud)

当在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'
Run Code Online (Sandbox Code Playgroud)

不幸的是(再次),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)
Run Code Online (Sandbox Code Playgroud)

获得输出的" 正确部分 "更容易,没有要删除的引用.



并且,仅仅为了完整性,您还可以使用mysqldump获取表的结构:

mysqldump --no-data --user=USERNAME --password=PASSWORD --host=HOST DATABASE_NAME TABLE_NAME
Run Code Online (Sandbox Code Playgroud)

使用该--no-data开关,您将只获得结构- 在某些模式设置的中间以及所有这些.

  • 这是旧的.右键单击表并选择"复制到剪贴板"=>"创建语句".或者,使用"Server"=>"Data Export"导出一个或多个包含或不包含数据的模式.此外,"逆向工程"可在社区版Workbench中找到. (4认同)
  • 对于不带引号的copypasting,右键单击结果集和Copy Field(Unquoted). (3认同)
  • 我似乎能够使用GA版本v5.2.25进行逆向工程.. CTRL + R. (2认同)

Phi*_*ick 46

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

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

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

  • 这对我有用,但在我使用的版本(6.0社区)上,您单击数据库 - >正向工程师(不是文件 - >正向工程). (2认同)
  • 这对我来说也很完美 (2认同)

Cez*_*Cez 21

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

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

这似乎对我有用.


小智 5

只需使用:

show create table <table_name>
Run Code Online (Sandbox Code Playgroud)


exc*_*ion 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


小智 5

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

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