gpt4 book ai didi

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

转载 作者:IT老高 更新时间:2023-10-28 12:53:31 29 4
gpt4 key购买 nike

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

最佳答案

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

我想这对应于 Reverse Engineering 功能,不幸的是,该功能仅在商业版中可用(引用):

reverse engineering a database directly from a MySQL server applies to commercial versions of MySQL Workbench only.


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

例如,以下查询:

show create table url_alias;

在drupal数据库上执行时,在结果上使用右键click>复制字段内容会给出:

'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 > 复制字段(未加引号) 以获得不带引号的所需结果。


最后,最简单的解决方案,除了留在 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 开关,你只会得到结构 -- 在一些模式设置和所有这些的中间

关于mysql - 如何在 MySQL Workbench 中获取表创建脚本?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2433133/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com