繁体   English   中英

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

[英]How to get a table creation script in MySQL Workbench?

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

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

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

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


不过,您可以使用普通 SQL 来获取允许您create tablecreate 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 查询浏览器之外,最简单的解决方案很可能是连接到数据库,使用命令行客户端,并从那里执行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开关,您将只能获得结构——在某些模式设置和所有这些的中间

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

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

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

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

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

这似乎对我有用。

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

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

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

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

只需使用:

show create table <table_name>

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

1 使用命令

show create table test.location

在此处输入图片说明

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

  2. 选择标签文本在此处输入图片说明

MySQL Workbench 6.3E 解决方案

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

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

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

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

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

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

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

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

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

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

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM