Reputation: 11257
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.
Upvotes: 57
Views: 85775
Reputation: 28184
You can do it using the mysqldump command line utility:
mysqldump -d -u <username> -p -h <hostname> <dbname>
The -d
option means "without data".
Upvotes: 102
Reputation: 1
@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.
Upvotes: 0
Reputation: 3211
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
Upvotes: -1