Как создать DDL для всех таблиц в базе данных в MySQL - PullRequest
41 голосов
/ 06 июля 2011

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

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

Например:

show create table projectdb.customer_details; 

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

Я использую MySQL с MySQL в Windows.

Ответы [ 3 ]

72 голосов
/ 06 июля 2011

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

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

Опция -d означает «без данных».

0 голосов
/ 14 января 2016

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

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

0 голосов
/ 06 июля 2011

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

...