Как генерировать DDL для всех таблиц в базе данных в MySQL

как сгенерировать DDL для всех таблиц в базе данных MySQL сразу. Я знаю, что следующий запрос выведет DDL для таблицы. Но я хочу DDL всех таблиц сразу, потому что у меня есть сотни таблиц в моей базе данных.

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

например:

show create table projectdb.customer_details; 

вышеуказанный запрос приведет к DDL customer_details таблица.

Я использую MySQL с MySQL workbench на ОС Windows.

3 ответов


вы можете сделать это с помощью утилиты командной строки mysqldump:

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

на означает "без данных".


@tftdias выше сделал комментарий, который является частично правильным:

проблема заключалась в пространстве между-p и " pps " в качестве пароля. Вы можете абсолютно freetext свой пароль в командной строке. Вы просто не должны, как правило безопасности. В linux с правильной конфигурацией вы можете добавить пробел ( "") перед первым символом в командной строке, и эта строка не войдет в "историю". Я бы рекомендовал, чтобы всякий раз, когда вы очищаете свой пароль (не делайте это!), чтобы вы хотя бы поставили пробел первым, чтобы пароль не был в видимой истории.


вы должны получить список всех таблиц в базе данных, а затем запустить этот запрос. проверьте эту ссылку, чтобы получить список всех таблиц: http://php.net/manual/en/function.mysql-list-tables.php