Sử dụng ALTER TABLE ... MODIFY COLUMN lặp lại cho từng cột trong một câu lệnh để đổi kiểu dữ liệu hàng loạt.
Cú pháp
ALTER TABLE table_name MODIFY COLUMN col1 new_data_type, MODIFY COLUMN col2 new_data_type, ..., MODIFY COLUMN colN new_data_type;
Ví dụ minh họa
mysql> CREATE TABLE AddColumn ( StudentID INT, StudentName VARCHAR(200) ); Query OK, 0 rows affected (0.49 sec)
Đổi cả hai cột cùng lúc: StudentName VARCHAR(200)→VARCHAR(300), StudentID INT→VARCHAR(50):
mysql> ALTER TABLE AddColumn MODIFY COLUMN StudentName VARCHAR(300), MODIFY COLUMN StudentId VARCHAR(50); Query OK, 0 rows affected (1.95 sec)
Kết quả:
+-------------+--------------+------+-----+---------+-------+ | Field | Type | Null | Key | Default | Extra | +-------------+--------------+------+-----+---------+-------+ | StudentId | varchar(50) | YES | | NULL | | | StudentName | varchar(300) | YES | | NULL | | +-------------+--------------+------+-----+---------+-------+
MODIFY vs CHANGE
| Đặc điểm | MODIFY COLUMN | CHANGE COLUMN |
|---|---|---|
| Đổi tên cột | Không | Có (new_name) |
| Đổi kiểu dữ liệu | Có | Có |
| Di chuyển vị trí | Không | Có (FIRST/AFTER) |
| Cú pháp | Gọn nhẹ hơn | Phải lặp tên cột |
Lưu ý
- Một câu
ALTER TABLEgộp nhiều thay đổi hiệu quả hơn chạy nhiều câu riêng lẻ (chỉ rebuild bảng 1 lần). - Kiểm tra tương thích dữ liệu trước khi đổi kiểu (ví dụ: VARCHAR→INT sẽ lỗi nếu có chữ).
- Production: dùng công cụ online schema change.