[英]How to get a table creation script in MySQL Workbench?
我正在回滚到 MySQL GUI 工具的 MySQL 查询浏览器,因为我找不到在 MySQL Workbench 中获取表创建脚本的快捷方式。
我也找不到这样的选项,至少在社区版中是这样。
我想这对应于逆向工程功能,不幸的是,它仅在商业版中可用(引用) :
直接从 MySQL 服务器对数据库进行逆向工程仅适用于 MySQL Workbench 的商业版本。
不过,您可以使用普通 SQL 来获取允许您create table
的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 在以这种方式复制时在各处添加了一些引号:-(
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.. 选项并获取整个数据库的创建脚本:
右键单击相关表并选择以下任一选项:
这似乎对我有用。
它位于服务器管理而不是 SQL 开发中。
我来到这里寻找同一问题的答案。 但我自己找到了更好的答案。
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 或文件 -> 导出 -> 第一个选项。
MySQL Workbench 6.3E 解决方案
不确定这是否仍然是一个问题,但对我来说,在 5.2.35CE 中可以通过以下方式获取创建脚本:
数据库 --> 逆向工程师
在存储连接下,选择您的数据库
点击“Next”几次,选择你想要逆向工程的模式,让工具工作
您将获得包含所有数据库架构的“EER 图表”视图。 如果您右键单击您关心的表并选择“将 SQL 复制到剪贴板”,我想您将拥有所需的东西。
希望这可以帮助需要它的其他人。
或检查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.