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.