MySQL
Conversión de MyISAM a InnoDB
Buscar..
Conversión básica
ALTER TABLE foo ENGINE=InnoDB;
Esto convierte la tabla, pero no se ocupa de las diferencias entre los motores. La mayoría de las diferencias no importarán, especialmente para mesas pequeñas. Pero para tablas más ocupadas, otras consideraciones deben ser consideradas. Consideraciones de conversión
Convertir todas las tablas en una base de datos
Para convertir fácilmente todas las tablas en una base de datos, use lo siguiente:
SET @DB_NAME = DATABASE();
SELECT CONCAT('ALTER TABLE `', table_name, '` ENGINE=InnoDB;') AS sql_statements
FROM information_schema.tables
WHERE table_schema = @DB_NAME
AND `ENGINE` = 'MyISAM'
AND `TABLE_TYPE` = 'BASE TABLE';
NOTA: Debería estar conectado a su base de datos para que la función
DATABASE()
funcione, de lo contrario, devolveráNULL
. Esto se aplica principalmente al cliente mysql estándar que se envía con el servidor, ya que permite conectarse sin especificar una base de datos.
Ejecute esta instrucción SQL para recuperar todas las tablas MyISAM
en su base de datos.
Finalmente, copie la salida y ejecute las consultas SQL desde ella.