没有数据的MySQL导出架构


490

我正在将MySql数据库与Java程序一起使用,现在我想将该程序提供给其他人。

如何导出MySql数据库结构而不包含数据,仅导出结构?

Answers:


960

您可以--no-data通过mysqldump命令使用该选项

mysqldump -u root -p --no-data dbname > schema.sql

11
恕我直言,这mysqldump是最好的答案。MySQL Administrator被遗弃,MySQL Workbench仍然存在很多问题。
阿尔瓦罗·冈萨雷斯

49
--single-transaction如果您不想或不能做表锁,也可以考虑使用该选项。
吉姆(Jim)

47
-d是--no-data的简称。
marstone 2014年

36
如果您的数据库具有存储过程/函数,也可以考虑添加--routines
crafterm 2014年

15
默认情况下,这不包括该CREATE DATABASE命令。要包含,请替换dbname--databases dbname(速记:)-B dbname。然后到另一台服务器上导入,使用mysql -u root -p < schema.sql
肖恩·

88

是的,您可以使用mysqldump以下--no-data选项:

mysqldump -u user -h localhost --no-data -p database > database.sql

4
我很惊讶这不是被接受的答案,尽管它早于十秒钟就发布了,而且如果与被接受的答案不一样的话,会更加完整。
user5532169'9

1
@ zypA13510,显然十秒钟可以达到749个赞成票的差额。
emallove19年

17

您还可以使用--no-data选项提取单个表格

mysqldump -u user -h localhost --no-data -p database tablename > table.sql


6

不使用输出进行转储。

mysqldump --no-data <database name> --result-file=schema.sql

4

请注意,尽管--no-data选项将不包含视图定义。因此,如果您的视图类似于创建视图v1,请选择aidAS idacreated_dateAS created_date 从T1; 使用--no-data选项,视图定义将更改为以下创建视图v1选择1 AS id,1 AScreated_date



2

如果您使用的是IntelliJ,则可以启用数据库视图(视图->工具窗口->数据库)

在该视图内,连接到数据库。然后,您可以右键单击数据库,然后选择“复制DDL”。其他IDE可能提供类似的功能。

IntelliJ DDL


2
我尝试了一下,它不包含任何触发器(上帝知道还有什么不可以)
phil294

2

如果要转储所有数据库中的所有表且没有数据(仅数据库和表结构),则可以使用:

mysqldump -P port -h hostname_or_ip -u username -p --no-data --all-databases > db_backup.sql

这将产生一个.sql文件,您可以将其加载到mysql服务器上以创建新的数据库。在生产环境中,这种情况的用例并不多,但是我每周都会这样做,以重置链接到演示网站的服务器,因此,无论用户在一周中的什么工作,在星期日晚上,一切都回滚到“新”状态: )


1

要获取单个表的创建脚本:
-选择所有表(带Shift键)
-右键单击表名,然后单击“复制到剪贴板”>“创建语句”。


0

shell> mysqldump --no-data --routines --events test> dump-defs.sql


1
欢迎使用StackOverflow。如果您提供更多信息和约束,则可以从中得出一个很好的答案。
Janhoo

0

添加--routines和--events选项以也包括存储的例程和事件定义

mysqldump -u <user> -p --no-data --routines --events test > dump-defs.sql

-1

您可以使用以下方法

mysqldump -d <database name> > <filename.sql> // -d : without data

希望对您有帮助


6
这个答案没有添加其他答案尚未说过的内容。
丹尼尔(Daniel)
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.