J'ai besoin de changer un type de données de INT en BIGINT dans une table MySQL de 600 Go. La colonne a un index unique. Je pourrais être bon avec INT non signé, mais je suppose que changer pour cela ou BIGINT sera à peu près la même douleur. Le moteur de la table est InnoDB. Quoi de plus simple:
- MODIFIER TABLE
- Copie de la structure et
INSERT INTO (SELECT *)
- Table de vidage et modification des définitions de table de fichier de vidage
- Rien d'autre?
MISE À JOUR: Comme demandé, MySQL ver 5.5.15, pas de clés étrangères et créer une table:
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
. Avez-vous des clés étrangères référençant cette colonne? Il serait utile que vous montriez la SHOW CREATE TABLE tablename;
sortie.