2015-02-03

Copiar tabla mysql

Recientemente tengo que hacer una nueva tabla para convertir una tabla utf8mb4 a utf8 debido a que instalarla en un servidor antiguo que no soporta utf8mb4, el formato que soporta unicode de forma completa.

Lo primero que hemos hecho ha sido copiar la tabla. Primero se crea la nueva tabla y después se llena


CREATE TABLE nueva_table LIKE vieja_tabla;



INSERT nueva_tabla SELECT * FROM vieja_tabla;


En nuestro caso la tabla contenía varios millones de registros por lo que este proceso tardó 4 minutos.

Es un proceso bastante rápido si no hay casi datos.

Luego me tocó
ejecutar los comandos de alteración del cotejamiento:

alter table nueva_tabla convert to character set utf8 collate utf8_general_ci;
 
Migrar de mysql 5.5 a 5.1 es algo que no recomiendo. En nuestro caso el servidor local es mysql 5.5 y de ahí se sacan los datos a varios sitios y uno de ellos el administrador de sistema pone pegas para actualizar. Afortunadamente en esa tabla no hay caracteres chinos.


 luego se exporta con el siguiente comando:

mysqldump -u username -p database --default-character-set=utf8 tabla_nueva > tabla_nueva.sql

Lo conprimo para subirlo al servidor antiguo:

gzip -9 tabla_nueva.sql

y listo.
otra opción es CREATE TABLE nueva SELECT * FROM vieja WHERE 1=0