Để thêm một cột có giá trị mặc định là NOT NULL trong MySQL, bạn không sử dụng từ khóa DEFAULT mà chỉ cần định nghĩa cột với ràng buộc NOT NULL.
Cú pháp
ALTER TABLE ten_bang ADD COLUMN ten_cot kieu_du_lieu NOT NULL AFTER ten_cot_khac;
Ví dụ minh họa
Tạo bảng ban đầu:
mysql> CREATE TABLE bang_goc (
-> 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)
Kiểm tra cấu trúc bảng:
+-----------+--------------+------+-----+---------+----------------+ | 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 | | +-----------+--------------+------+-----+---------+----------------+
Thêm cột City với ràng buộc NOT NULL:
mysql> ALTER TABLE bang_goc ADD COLUMN City VARCHAR(20) NOT NULL AFTER Age; Query OK, 0 rows affected (2.17 sec)
Kiểm tra lại cấu trúc:
+-----------+--------------+------+-----+---------+----------------+ | 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 | | +-----------+--------------+------+-----+---------+----------------+
Cột City hiện có giá trị Null = NO, nghĩa là không chấp nhận giá trị NULL.