Jawaban terbaik untuk ini mungkin yang satu ini
oleh olliiiver yang saya sedikit modifikasi. Itu secara khusus mengekspor permintaan tabel drop dan membuat atau mengganti permintaan tampilan untuk setiap tampilan dalam sistem, tanpa perlu dipusingkan dengan tabel apa pun. Kueri drop table sering penting, karena mysqldump tampaknya suka membuat ulang tampilan sebagai tabel kecuali Anda memasukkan setiap tampilan dalam parameter --ignore-table sendiri, yang akan mengganggu. Ini menggunakan 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"
Jika Anda ingin mengubah sesuatu seperti ini menjadi skrip shell, saya juga merekomendasikan menggunakan parameter --defaults-extra-file = CREDSFILENAME, sehingga Anda tidak perlu menentukan pengguna / pass dalam skrip.
File kredensial terlihat seperti ini:
[client]
username=YourUsernameHere
password=YourPasswordHere