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=utf8ALTER 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.