Sử dụng ALTER TABLE ... MODIFY COLUMN ... NOT NULL để thay đổi ràng buộc NULL/NOT NULL của cột hiện có.
Tạo bảng ban đầu cho phép NULL
mysql> CREATE TABLE DemoTable (
-> UserId INT NOT NULL AUTO_INCREMENT,
-> UserFirstName VARCHAR(100),
-> UserLastName VARCHAR(100),
-> UserEmailId VARCHAR(100),
-> UserPassword VARCHAR(100),
-> PRIMARY KEY(UserId)
-> );
Query OK, 0 rows affected (0.91 sec)
Thay đổi UserFirstName thành NOT NULL
mysql> ALTER TABLE DemoTable MODIFY UserFirstName VARCHAR(100) NOT NULL; Query OK, 0 rows affected (2.13 sec)
Kiểm tra cấu trúc bảng
mysql> DESC DemoTable;
Kết quả (UserFirstName giờ có Null = NO):
+---------------+--------------+------+-----+---------+----------------+ | Field | Type | Null | Key | Default | Extra | +---------------+--------------+------+-----+---------+----------------+ | UserId | int(11) | NO | PRI | NULL | auto_increment | | UserFirstName | varchar(100) | NO | | NULL | | | UserLastName | varchar(100) | YES | | NULL | | | UserEmailId | varchar(100) | YES | | NULL | | | UserPassword | varchar(100) | YES | | NULL | | +---------------+--------------+------+-----+---------+----------------+ 5 rows in set (0.17 sec)
Lưu ý:
- Phải đảm bảo không có hàng nào đang NULL ở cột đó trước khi ALTER
- Nếu có NULL, cần
UPDATE ... SET col = 'default' WHERE col IS NULLtrước MODIFYyêu cầu khai báo lại kiểu dữ liệu đầy đủ