Computer >> Hướng Dẫn Máy Tính >  >> Lập Trình >> MySQL

Thêm ràng buộc NOT NULL cho cột đã tồn tại trong MySQL với ALTER MODIFY

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 NULL trước
  • MODIFY yêu cầu khai báo lại kiểu dữ liệu đầy đủ