En MySQL no hay un comando para renombrar bases de datos. Por lo tanto, el proceso debe ser realizado utilizando RENAME TABLE. Mostramos aquí una forma de hacerlo, especialmente útil si la base de datos es muy grande y se necesita hacerlo rápido y sin consumir recursos en el servidor.
- Crear la base de datos con el nuevo nombre:
CREATE DATABASE nueva; - Mover las tablas de la base de datos «original» a «nueva» utilizando el comando:
RENAME TABLE original.tabla1 TO nueva.tabla1; - Para realizar la tarea automáticamente, se puede utilizar un statement aumentando previamente el tamaño de la variable «group_concat_max_len»;
SET SESSION group_concat_max_len = 4294967295;
SELECT CONCAT(‘RENAME TABLE ‘, GROUP_CONCAT( table_schema,’.’,table_name, ‘ TO ‘,’nueva.’,table_name,’ ‘),’;’) as mover FROM information_schema.TABLES WHERE table_schema LIKE ‘original’ GROUP BY table_schema; - A continuación, se debe ejecutar la consulta devuelta por el comando anterior. Con eso, todas las tablas serán movidas a la nueva base de datos en pocos segundos
Bibliografía
- http://dev.mysql.com/doc/refman/5.1/en/rename-table.html
- http://dev.mysql.com/doc/refman/5.1/en/group-by-functions.html#function_group-concat