Ho bisogno di cambiare un tipo di dati da INT a BIGINT in una tabella MySQL da 600 GB. La colonna ha un indice univoco. Potrei essere bravo con INT senza segno, ma presumo che cambiarlo o BIGINT sarà praticamente lo stesso dolore. Il motore della tabella è InnoDB. Cosa sarebbe più facile:
- ALTER TABLE
- Copia della struttura e
INSERT INTO (SELECT *)
- Tabella di dumping e modifica delle definizioni della tabella dei file di dump
- Qualunque altra cosa?
AGGIORNAMENTO: Come richiesto, MySQL versione 5.5.15, nessuna chiave esterna e creazione tabella:
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
. Hai chiavi esterne che fanno riferimento a questa colonna? Sarebbe utile se mostrassi l' SHOW CREATE TABLE tablename;
output.