Saya mencari cara untuk membuat daftar semua tampilan dalam database.
Awalnya saya menemukan dan mencoba jawaban di forum MySQL :
SELECT table_name
FROM information_schema.views
WHERE information_schema.views.table_schema LIKE 'view%';
Bagaimana pun ini tidak berhasil, mengembalikan set kosong. (Aku tahu mereka ada di sana!)
Ini juga gagal:
mysql> use information_schema;
Database changed
mysql> select * from views;
ERROR 1102 (42000): Incorrect database name 'mysql.bak'
mysql> select * from tables;
ERROR 1102 (42000): Incorrect database name 'mysql.bak'
Mengapa ini tidak berhasil?
Jawaban:
Permintaan MySQL untuk menemukan semua tampilan dalam database
sumber
Berikut adalah cara untuk menemukan semua tampilan di setiap basis data atas contoh Anda:
sumber
AND TABLE_SCHEMA LIKE 'database_name'
.sumber
Ini akan bekerja
sumber
Valerie Parham-Thompson
Untuk melengkapi tentang mendapatkan info lebih lanjut tentang tampilan tertentu
Bahkan dengan dua jawaban yang valid
Anda dapat menerapkan hal berikut (saya pikir lebih baik):
lebih baik bekerja secara langsung dengan
information_schema.VIEWS
(amati sekarang adalah VIEWS dan bukan TABLES lagi), sehingga Anda dapat mengambil lebih banyak data, gunakanDESC VIEWS
untuk rincian lebih lanjut:Misalnya amati
VIEW_DEFINITION
bidangnya, sehingga Anda dapat menggunakannya dalam aksi:Tentu saja Anda memiliki lebih banyak bidang yang tersedia untuk pertimbangan Anda.
sumber
Coba pindahkan
mysql.bak
direktori itu/var/lib/mysql
untuk mengatakan/root/
sesuatu. Sepertinya mysql menemukan itu dan mungkin menyebabkanERROR 1102 (42000): Incorrect database name 'mysql.bak'
kesalahan itu.sumber
Kesalahan yang Anda lihat mungkin disebabkan oleh direktori yang dibuat non-MySQL di direktori data MySQL. MySQL memetakan struktur basis data secara langsung ke sistem file, basis data dipetakan ke direktori dan tabel adalah file dalam direktori tersebut.
Nama database yang tidak berfungsi terlihat mencurigakan seperti seseorang telah menyalin direktori database mysql ke cadangan di beberapa titik dan meninggalkannya di direktori data MySQL. Ini bukan masalah selama Anda tidak mencoba dan menggunakan database untuk apa pun. Sayangnya skema informasi memindai semua database yang ditemukan dan menemukan bahwa ini bukan database nyata dan menjadi marah.
Solusinya adalah menemukan direktori mysql.bak di hard disk dan memindahkannya menjauh dari MySQL.
sumber
Cara lain untuk menemukan semua Tampilan:
SELECT DISTINCT table_name FROM information_schema.TABLES WHERE table_type = 'LIHAT
sumber
Jika Anda membuat tampilan apa pun di basis data Mysql maka Anda bisa melihatnya saat Anda melihat semua tabel di basis data Anda.
menulis:
Anda akan melihat daftar tabel dan tampilan database Anda.
sumber