ฉันต้องการเปลี่ยนประเภทข้อมูลจาก INT เป็น BIGINT ในตาราง MySQL 600GB คอลัมน์มีดัชนีที่ไม่ซ้ำกัน ฉันอาจจะดีกับ INT ที่ไม่ได้ลงนาม แต่ฉันคิดว่าการเปลี่ยนแปลงนั้นมิฉะนั้น BIGINT จะเจ็บปวดเหมือนกัน เอ็นจิ้นของตารางคือ InnoDB อะไรจะง่ายขึ้น:
- แก้ไขตาราง
- โครงสร้างการคัดลอกและ
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;
ผลลัพธ์