web-dev-qa-db-ja.com

MySQLデータベースのビュースキーマをダンプするにはどうすればよいですか?

ビューのスキーマをダンプしたいMySQLデータベースがあります。どうすればよいですか? --no-dataを使用してmysqldumpを試しましたが、それはテーブルスキーマのみをダンプします。

3
Chad Johnson

他のオプションをmysqldumpに渡すか、ビューを認識しないバージョンのmysqldumpを使用している可能性があります(おそらく古すぎる)。 mysqldump --no-dataを実行すると、ビュー定義がダンプされます。以下を参照してください。

/*!50001 CREATE ALGORITHM=UNDEFINED */
/*!50013 DEFINER=`root`@`localhost` SQL SECURITY DEFINER */
/*!50001 VIEW `t` AS select 1 AS `1` */;
6
Baron Schwartz

dumpの作成中に-optオプションを使用します。

mysqldump -hserver -uUser -ppasswd -no-data --opt export > export.sql
4
Gopal

Mysqldumpには、ビューのみをダンプするオプションはありません。以下のコマンドは、ビューのみのバックアップを取るのに役立ちます。

mysql -uroot -pPassword INFORMATION_SCHEMA --skip-column-names -e "table_type = 'VIEW'およびtable_schema = 'sakila'であるテーブルからtable_nameを選択します" | xargs mysqldump -u root -pPassword sakila> only_views.sql

2
Sreedhar D

他の答えはしませんでしたが、これは私にとってうまくいきました...

mysqldump --skip-comments --skip-opt --complete-insert --add-drop-table --database dbname -p
0
kervin