Chức năng
Lệnh CHANGE trong ALTER TABLE dùng để đổi tên cột (và có thể thay đổi kiểu dữ liệu, thuộc tính cùng lúc).
Cú pháp
ALTER TABLE ten_bang CHANGE ten_cot_cu ten_cot_moi kieu_du_lieu [thuoc_tinh];
Ví dụ
Tạo bảng:
CREATE TABLE DemoTable796 (
StudentId INT NOT NULL AUTO_INCREMENT PRIMARY KEY,
Name VARCHAR(100),
StudentAge INT
);
Kiểm tra cấu trúc:
DESC DemoTable796;
Đổi tên cột Name → StudentName:
ALTER TABLE DemoTable796 CHANGE Name StudentName VARCHAR(100);
Kiểm tra lại:
DESC DemoTable796;
Kết quả: cột Name đã thành StudentName.
CHANGE vs MODIFY vs RENAME COLUMN
| Lệnh | Chức năng | Lưu ý |
|---|---|---|
CHANGE | Đổi tên cột + có thể đổi kiểu/thuộc tính | Bắt buộc nhập lại kiểu dữ liệu |
MODIFY | Chỉ đổi kiểu/thuộc tính, KHÔNG đổi tên | Không cần nhập tên cột cũ |
RENAME COLUMN (MySQL 8.0+) | Chỉ đổi tên, giữ nguyên kiểu/thuộc tính | Cú pháp chuẩn SQL, ngắn gọn hơn |
Ví dụ MODIFY
-- Chỉ đổi kiểu, không đổi tên
ALTER TABLE DemoTable796 MODIFY StudentName VARCHAR(200);
Ví dụ RENAME COLUMN (MySQL 8.0+)
ALTER TABLE DemoTable796 RENAME COLUMN StudentName TO FullName;
Lưu ý
CHANGEyêu cầu nhập lại đầy đủ định nghĩa cột (kiểu, NULL/NOT NULL, DEFAULT, AUTO_INCREMENT...).- Nếu chỉ đổi tên, hãy dùng
RENAME COLUMN(MySQL 8.0+) để tránh lỗi quên thuộc tính. - Đổi tên cột có trong INDEX/FOREIGN KEY: MySQL tự cập nhật metadata, nhưng cần kiểm tra application code.