transacciones tablas soportan soporta motor migradas las keys glpi ejemplos datos creacion convert compound cambiar activar mysql innodb myisam storage-engines

mysql - tablas - myisam no soporta transacciones



¿Cómo puedo saber si una tabla mysql está utilizando myISAM o InnoDB Engine? (3)

Si usa SHOW CREATE TABLE, debe analizar el motor de la consulta.

Seleccionar desde la base de datos INFORMATION_SCHEMA es una práctica deficiente, ya que los desarrolladores se reservan el derecho de cambiar su esquema en cualquier momento (aunque es poco probable).

La consulta correcta para usar es SHOW TABLE STATUS : puede obtener información sobre todas las tablas en una base de datos:

SHOW TABLE STATUS FROM `database`;

O para una tabla específica:

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

Una de las columnas que recibirás será Engine.

En MySQL, no hay forma de especificar un motor de almacenamiento para una determinada base de datos, solo para tablas individuales. Sin embargo, puede especificar un motor de almacenamiento para ser utilizado durante una sesión con:

SET storage_engine=InnoDB;

Entonces no tiene que especificarlo para cada tabla.

¿Cómo confirmo si todas las tablas están usando InnoDB?


show create table <table> debería hacer el truco.


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