У меня есть база данных MySQL, для которой я хочу сбросить схемы для представлений. Как мне это сделать? Я пробовал mysqldump с --no-data, но он выводит только схемы таблиц.
Я думаю, вы могли бы либо передать некоторые другие параметры mysqldump, либо использовать версию mysqldump, которая не понимает представления (возможно, она слишком старая). Когда я запускаю mysqldump --no-data, он сбрасывает определения представления. См. Ниже:
/*!50001 CREATE ALGORITHM=UNDEFINED */
/*!50013 DEFINER=`root`@`localhost` SQL SECURITY DEFINER */
/*!50001 VIEW `t` AS select 1 AS `1` */;
Использовать --opt вариант при создании свалка:
mysqldump -hserver -uUser -ppasswd -no-data --opt export > export.sql
Mysqldump не будет иметь никаких параметров для дампа только представлений. Команда ниже поможет вам сделать резервную копию только представлений.
mysql -uroot -pPassword INFORMATION_SCHEMA --skip-column-names -e "выбрать имя_таблицы из таблиц, где table_type = 'VIEW' и table_schema = 'sakila'" | xargs mysqldump -u root -pPassword sakila> only_views.sql
Другие ответы не помогли, но это сработало для меня ...
mysqldump --skip-comments --skip-opt --complete-insert --add-drop-table --database dbname -p