Đối với điều này, bạn cần phải loại bỏ từ khóa mặc định. Cú pháp như sau:
ALTER TABLE yourTableName ADD COLUMN yourColumnName dataType NOT NULL AFTER yourColumnName;
Để hiểu cú pháp trên, chúng ta hãy tạo một bảng. Truy vấn để tạo bảng như sau:
mysql> create table AddingColumnDefaultValueNOTNULL -> ( -> Id int NOT NULL AUTO_INCREMENT, -> FirstName varchar(20), -> LastName varchar(20), -> Age int, -> Address varchar(100), -> Salary int, -> PRIMARY KEY(Id) -> ); Query OK, 0 rows affected (0.58 sec)
Bây giờ kiểm tra mô tả của bảng. Truy vấn như sau:
mysql> desc AddingColumnDefaultValueNOTNULL;
Sau đây là kết quả:
+-----------+--------------+------+-----+---------+----------------+ | Field | Type | Null | Key | Default | Extra | +-----------+--------------+------+-----+---------+----------------+ | Id | int(11) | NO | PRI | NULL | auto_increment | | FirstName | varchar(20) | YES | | NULL | | | LastName | varchar(20) | YES | | NULL | | | Age | int(11) | YES | | NULL | | | Address | varchar(100) | YES | | NULL | | | Salary | int(11) | YES | | NULL | | +-----------+--------------+------+-----+---------+----------------+ 6 rows in set (0.11 sec)
Đây là truy vấn để thêm một cột có giá trị KHÔNG ĐẦY ĐỦ theo mặc định:
mysql> alter table AddingColumnDefaultValueNOTNULL add column City varchar(20) NOT NULL after Age; Query OK, 0 rows affected (2.17 sec) Records: 0 Duplicates: 0 Warnings: 0
Bây giờ bạn có thể kiểm tra mô tả của bảng một lần nữa. Bảng sẽ có một cột mới có tên là 'Thành phố', có giá trị mặc định KHÔNG ĐỦ theo mặc định.
Truy vấn để kiểm tra mô tả của bảng như sau:
mysql> desc AddingColumnDefaultValueNOTNULL;
Sau đây là kết quả:
+-----------+--------------+------+-----+---------+----------------+ | Field | Type | Null | Key | Default | Extra | +-----------+--------------+------+-----+---------+----------------+ | Id | int(11) | NO | PRI | NULL | auto_increment | | FirstName | varchar(20) | YES | | NULL | | | LastName | varchar(20) | YES | | NULL | | | Age | int(11) | YES | | NULL | | | City | varchar(20) | NO | | NULL | | | Address | varchar(100) | YES | | NULL | | | Salary | int(11) | YES | | NULL | | +-----------+--------------+------+-----+---------+----------------+ 7 rows in set (0.02 sec)
Nhìn vào cánh đồng Thành phố. Trong cột NULL, giá trị là KHÔNG. Điều này tự nó nói rằng chúng tôi không thể đặt giá trị NULL cho trường Thành phố.