Gespeichert von Erik Wegner
am/um
Body
Der folgende Befehl liest alle Tabellen einer Datenbank aus. Deren Name wird genutzt, um einen neuen Befehl zu erstellen, der die Datenbankengine ändert.
SELECT CONCAT('ALTER TABLE ', table_name, ' ENGINE=InnoDB;') FROM information_schema.tables WHERE table_schema = 'DATENBANKNAME' AND Engine <> 'InnoDB' ORDER BY table_name DESC
Zuerst werden alle Tabellen einer Datenbank ausgegeben, die noch nicht InnoDB als Engine verwenden. Die gewünschte Datenbank wird als Bedingung an table_schema
übergeben.
Die gefundenen Tabellennamen werden mit Hilfe des Befehls CONCAT zu einer neuen Zeichenkette zusammengefügt. Dies ist der notwendige SQL-Befehl, der MySQL anweist, die Datenbanktabelle zu ändern.
Die Ausgabe wird über die Zwischenablage wieder an die MySQL-Befehlszeile übergeben.