如何为MySQL中的数据库中的所有表生成DDL

时间:2011-07-06 14:16:24

标签: mysql database database-design ddl

如何一次为MySQL数据库中的所有表生成DDL。我知道以下查询将输出表的DDL。但是我想要同时使用所有表的DDL,因为我的数据库中有数百个表。

show create table <database name>.<table name>;

例如:

show create table projectdb.customer_details; 

上述查询将导致customer_details表的DDL。

我在Windows操作系统上使用MySQL和MySQL工作台。

3 个答案:

答案 0 :(得分:72)

您可以使用mysqldump命令行实用程序执行此操作:

mysqldump -d -u <username> -p<password> -h <hostname> <dbname>

-d选项表示“没有数据”。

答案 1 :(得分:0)

上面的@tftdias做了一个部分正确的评论:

问题是-p和'pps'之间的空格作为密码。您可以在命令行上完全自由文本密码。作为一般安全规则,你不应该这样做。在linux中,通过适当的配置,您可以在命令行的第一个字符之前添加一个空格(“”),该行不会进入“历史记录”。我建议你每当你明确密码时(不要这样做!),你至少先放一个空格,以便密码不在可见的历史记录中。

答案 2 :(得分:-1)

您必须获取数据库中所有表的列表,然后运行此查询。 检查此链接以获取所有表的列表: http://php.net/manual/en/function.mysql-list-tables.php