Perintah MySQL yang menanyakan semua basis data MyISAM


13

Saya akan sangat menghargai jika ada yang bisa membantu saya tentang apa perintah yang tepat di MySQL untuk meminta semua database untuk memiliki mesin "MyISAM". Saya perlu mengubah semua DB & tabel dari MyISAM ke InnoDB.

Jawaban:


25

Di bawah ini adalah Permintaan untuk menemukan semua tabel yang memiliki MyISAMMesin

SELECT TABLE_SCHEMA as DbName ,TABLE_NAME as TableName ,ENGINE as Engine FROM information_schema.TABLES WHERE ENGINE='MyISAM' AND TABLE_SCHEMA NOT IN('mysql','information_schema','performance_schema');

Above Query akan mencantumkan semua tabel yang memiliki MyISAMEngine.

Untuk cara mengonversi tabel MyISAM yang ada ke InnoDB Di bawah ini adalah Kueri yang akan Mengembalikan Pernyataan ALTER untuk mengonversi MyISAMTabel yang ada InnoDB.

SELECT CONCAT('ALTER TABLE `', TABLE_SCHEMA,'`.`',TABLE_NAME, '` ENGINE = InnoDB;') FROM information_schema.TABLES WHERE ENGINE='MyISAM' AND TABLE_SCHEMA NOT IN('mysql','information_schema','performance_schema');

Anda dapat menjalankan pernyataan ini untuk mengonversi mesin.


Terima kasih @AbdulManaf. Saya tidak berharap perintah pertama akan memakan waktu di server.
James Wise

Ya, seharusnya tidak butuh waktu.
Abdul Manaf

Bagaimana cara kueri untuk menemukan semua tabel dalam database yang bukan InnoDB?
James Wise
Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.