Back to home
Sergio Carracedo

Sergio Carracedo

Convertir tablas InnoDB en MyISAM

Convertir tablas InnoDB en MyISAM

Convertir tablas InnoDB en MyISAM

Recientemente me surgió la necesidad de convertir motor de las tablas de una base de datos que usaban InnoDB a MyISAM, la solución es trivial en apariencia, es decir, convertir una tabla es tan sencillo como

ALTER TABLE [NOMBRE_BBDD].[NOMBRE_TABLA] engine=MyISAM;

Pero si son muchas las tablas a convertir esta tarea se puede convertir en insufrible haciéndonos perder un valioso tiempo, e aquí la solución:

SELECT CONCAT('ALTER TABLE ',table_schema,'.',table_name,' engine=MyISAM;') FROM information_schema.tables WHERE ENGINE = 'InnoDB' AND table_schema = '[NOMBRE_BASE_DE_DATOS]'

Con esta consulta conseguimos como resultado una cantidad de tuplas igual al numero de tablas a convertir como único contenido de cada uno de ellos es la consulta SQL necesaria para convertir la tabla. Ya solo nos queda ejecutar las consultas obtenidas y voilá tendremos nuestras tablas convetidas a MyISAM