Мне нужно изменить тип данных с INT на BIGINT в таблице MySQL 600 ГБ. Столбец имеет уникальный индекс. Я мог бы быть хорош с неподписанным INT, но я предполагаю, что изменение к этому или BIGINT будет в значительной степени той же самой болью. Двигатель стола - InnoDB. Что будет проще:
- ALTER TABLE
- Копирование структуры и
INSERT INTO (SELECT *)
- Таблица дампа и изменение определений таблицы файла дампа
- Что-нибудь еще?
ОБНОВЛЕНИЕ: Как и требовалось, MySQL версии 5.5.15, без внешних ключей и создания таблицы:
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
. У вас есть внешние ключи, ссылающиеся на этот столбец? Это помогло бы, если бы вы показали SHOW CREATE TABLE tablename;
вывод.