Как генерировать 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