How to generate DDL for all tables in a database in MySQL

匿名 (未验证) 提交于 2019-12-03 02:45:02

问题:

How to generate the DDL for all tables in a database of MySQL at once. I know that the following query will output the DDL for a table. But I want DDL of all tables at once because I am having hundreds of tables in my database.

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

For example:

show create table projectdb.customer_details;  

The above query will result in DDL of customer_details table.

I am using MySQL with MySQL workbench on Windows OS.

回答1:

You can do it using the mysqldump command line utility:

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

The -d option means "without data".



回答2:

@tftdias above made a comment that is partially correct:

The issue was the space between the -p and 'pps' as the password. You can absolutely freetext your password on the command line. You just shouldn't, as a general security rule. In linux, with a proper configuration, you can add a space (" ") BEFORE the first character on your command line, and that line will not enter into 'history'. I would recommend that whenever you cleartext your password (don't do it!), that you at least put a space first so that the password is not in visible history.



回答3:

You must get list of all the tables in database and then run this query. check this link to get list of all tables: http://php.net/manual/en/function.mysql-list-tables.php



标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!