Dùng ALTER TABLE ... MODIFY COLUMN để thay đổi định nghĩa cột, thêm NOT NULL. Lưu ý: cột không được chứa giá trị NULL hiện tại, nếu không sẽ báo lỗi.
Ví dụ minh họa
Tạo bảng (StudentName cho phép NULL):
mysql> CREATE TABLE DemoTable (
StudentId INT NOT NULL AUTO_INCREMENT PRIMARY KEY,
StudentName VARCHAR(100)
);
Kiểm tra cấu trúc:
mysql> DESC DemoTable;
+-------------+--------------+------+-----+---------+----------------+ | Field | Type | Null | Key | Default | Extra | +-------------+--------------+------+-----+---------+----------------+ | StudentId | int(11) | NO | PRI | NULL | auto_increment | | StudentName | varchar(100) | YES | | NULL | | +------------+--------------+------+-----+---------+----------------+
Thêm NOT NULL cho StudentName:
mysql> ALTER TABLE DemoTable MODIFY StudentName VARCHAR(100) NOT NULL;
Kiểm tra lại:
mysql> DESC DemoTable;
Kết quả
+-------------+--------------+------+-----+---------+----------------+ | Field | Type | Null | Key | Default | Extra | +-------------+--------------+------+-----+---------+----------------+ | StudentId | int(11) | NO | PRI | NULL | auto_increment | | StudentName | varchar(100) | NO | | NULL | | +------------+--------------+------+-----+---------+----------------+
Lưu ý: Phải khai báo lại đầy đủ kiểu dữ liệu (VARCHAR(100)) khi dùng MODIFY. Nên chạy UPDATE ... SET cot = 'default' WHERE cot IS NULL trước nếu cột đang có NULL.