Sử dụng ALTER TABLE ... CHANGE ten_cot ten_cot kieu_du_lieu_moi (giữ nguyên tên cột).
Cú pháp:
ALTER TABLE ten_bang CHANGE ten_cot ten_cot VARCHAR(kich_thuoc_moi);
Ví dụ: Cột Name VARCHAR(5) bị lỗi "Data too long" khi chèn 'JohnSmith':
CREATE TABLE DataTruncated (id INT, Name VARCHAR(5)); INSERT INTO DataTruncated VALUES (101, 'JohnSmith'); -- ERROR 1406
Tăng kích thước lên 200:
ALTER TABLE DataTruncated CHANGE Name Name VARCHAR(200);
Chèn lại thành công:
INSERT INTO DataTruncated VALUES (101, 'JohnSmith'); SELECT * FROM DataTruncated;
Kết quả
+------+-----------+ | id | Name | +------+-----------+ | 101 | JohnSmith | +------+-----------+
Lưu ý:
- Giảm kích thước có thể bị cắt dữ liệu (truncate) nếu dữ liệu hiện tại dài hơn.
- Thay đổi kiểu dữ liệu (VARCHAR → TEXT, INT → BIGINT...) cũng dùng cú pháp này.
- MySQL 8.0+ hỗ trợ
ALTER TABLE ... MODIFY COLUMN(không cần lặp tên cột 2 lần).