Necesito cambiar un tipo de datos de INT a BIGINT en una tabla MySQL de 600 GB. La columna tiene un índice único. Podría ser bueno con INT sin firmar, pero supongo que cambiar a eso o BIGINT será casi el mismo dolor. El motor de la mesa es InnoDB. Qué sería más fácil:
- ALTERAR TABLA
- Copiando estructura y
INSERT INTO (SELECT *)
- Volcar la tabla y cambiar las definiciones de la tabla del archivo de volcado
- ¿Algo más?
ACTUALIZACIÓN: según lo solicitado, MySQL ver 5.5.15, sin claves foráneas y crear tabla:
CREATE TABLE `tbl` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`user_id` int(11) NOT NULL,
`created_at` datetime NOT NULL,
`tid` bigint(20) NOT NULL,
`t` varchar(255) CHARACTER SET utf8 COLLATE utf8_unicode_ci NOT NULL,
`f` tinyint(1) NOT NULL,
`i_id` bigint(20) NOT NULL,
`ir_id` int(11) NOT NULL,
`r_c` int(11) NOT NULL,
`r` tinyint(1) NOT NULL,
`e` text CHARACTER SET utf8 COLLATE utf8_unicode_ci NOT NULL,
`t` varchar(5) NOT NULL,
PRIMARY KEY (`id`),
UNIQUE KEY `user` (`user_id`,`tid`)
) ENGINE=InnoDB AUTO_INCREMENT=1657146169 DEFAULT CHARSET=utf8
ALTER TABLE ONLINE
. ¿Tiene claves externas que hacen referencia a esta columna? Sería útil si mostraras el SHOW CREATE TABLE tablename;
resultado.