Der MySQL-Befehl fragt alle MyISAM-Datenbanken ab


13

Ich würde mich freuen, wenn mir jemand helfen könnte, was der richtige Befehl in MySQL ist, um alle Datenbanken nach der "MyISAM" -Engine abzufragen. Ich muss alle DB & Tabellen von MyISAM nach InnoDB konvertieren.

Antworten:


24

Unten finden Sie die Abfrage, um alle Tabellen mit MyISAMEngine zu finden

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');

Die obige Abfrage listet alle Tabellen mit MyISAMEngine auf.

Informationen zum Konvertieren Ihrer vorhandenen MyISAM-Tabellen in InnoDB Unten finden Sie die Abfrage, die ALTER-Anweisungen zurückgibt, in die vorhandene MyISAMTabellen konvertiert werden sollen 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');

Sie können diese Anweisungen ausführen, um Engines zu konvertieren.


Vielen Dank @AbdulManaf. Ich hatte nicht erwartet, dass der erste Befehl auf dem Server Zeit in Anspruch nehmen würde.
— James Wise

Ja, es sollte keine Zeit dauern.
— Abdul Manaf

Wie kann man abfragen, um alle Tabellen in Datenbanken zu finden, die nicht InnoDB sind?
— James Wise
Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.