Подтвердить что ты не робот

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

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

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

Например:

show create table projectdb.customer_details; 

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

Я использую MySQL с рабочим местом MySQL в ОС Windows.

4b9b3361

Ответ 1

Вы можете сделать это, используя служебную программу командной строки mysqldump:

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

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

Ответ 2

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

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

Ответ 3

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