Найкращою відповіддю на це, ймовірно , це один
з olliiiver , який я злегка модифікували. Він спеціально експортує запит на випадок таблиці та створює або замінює запит перегляду для кожного перегляду в системі, не потребуючи возитися з будь-якими таблицями. Запит в таблиці, що випадає, часто важливий, оскільки, по всій видимості, mysqldump любить відтворювати представлення у вигляді таблиць, якщо ви не включите кожен вид у свій власний параметр --ignore-table, який би дратував. Він використовує INFORMATION_SCHEMA.
mysql --skip-column-names --batch \
-e "SELECT CONCAT('DROP TABLE IF EXISTS ', TABLE_SCHEMA, '.', TABLE_NAME, \
'; CREATE OR REPLACE VIEW ', TABLE_SCHEMA, '.', TABLE_NAME, ' AS ', \
VIEW_DEFINITION, '; ') AS q FROM INFORMATION_SCHEMA.VIEWS"
Якщо ви хочете перетворити щось подібне на сценарій оболонки, я також рекомендую використовувати параметр --defaults-extra-file = CREDSFILENAME, так що вам не потрібно вказувати користувача / проходу в скрипті.
Файл облікових даних виглядає приблизно так:
[client]
username=YourUsernameHere
password=YourPasswordHere