600GB MySQL tablosunda bir veri türünü INT BIGINT değiştirmek gerekir. Sütunun benzersiz bir dizini vardır. İmzasız INT ile iyi olabilirim, ancak buna geçmeyi ya da BIGINT'in hemen hemen aynı acı olacağını varsayıyorum. Tablonun motoru InnoDB. Daha kolay ne olabilir:
- TABLOYU DEĞİŞTİR
- Kopyalama yapısı ve
INSERT INTO (SELECT *)
- Döküm tablosu ve döküm dosyası tablosu tanımlarını değiştirme
- Başka herhangi bir şey?
GÜNCELLEME: İstendiği gibi, MySQL sürüm 5.5.15, yabancı anahtar yok ve tablo oluştur:
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
. Bu sütuna referans veren yabancı anahtarlarınız var mı? SHOW CREATE TABLE tablename;
Çıktıyı göstermeniz size yardımcı olacaktır .