Submitted by Erik Wegner
on
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.