Frage

In MySQL gibt es keine Möglichkeit, eine Speicher-Engine für eine bestimmte Datenbank angeben, nur für einzelne Tabellen. Sie können jedoch ein Speicher-Engine während einer Sitzung verwendet werden soll angeben mit:

SET storage_engine=InnoDB;

So haben Sie es nicht angeben, für jede Tabelle.

Wie bestätige ich, wenn tatsächlich alle Tabellen verwenden InnoDB?

War es hilfreich?

Lösung

Wenn Sie SHOW CREATE TABLE verwenden, müssen Sie den Motor analysieren aus der Abfrage.

Die Auswahl aus der INFORMATION_SCHEMA Datenbank ist schlecht Praxis, wie die Entwickler das Recht vor, das Schema jederzeit zu ändern (obwohl es unwahrscheinlich ist).

Die richtige Abfrage zu verwenden ist SHOW TABLE STATUS - Sie Informationen über alle Tabellen in einer Datenbank bekommen:

SHOW TABLE STATUS FROM `database`;

oder für eine bestimmte Tabelle:

SHOW TABLE STATUS FROM `database` LIKE 'tablename';

Eine der Spalten, die Sie zurückbekommen werden, ist Motor.

Andere Tipps

SELECT * FROM INFORMATION_SCHEMA.TABLES
WHERE TABLE_SCHEMA = 'db name' AND ENGINE != 'InnoDB'

show create table <table> sollte es tun.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top