สำหรับการเพิ่มคอลัมน์ที่มีค่า NOT NULL โดยค่าเริ่มต้น ต้องไม่ใช้คำสั่ง DEFAULT แต่ระบุ NOT NULL โดยตรง
ไวยากรณ์
ALTER TABLE yourTableName ADD COLUMN yourColumnName dataType NOT NULL AFTER yourColumnName;
ตัวอย่างการใช้งาน
สร้างตารางตัวอย่าง:
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)
ตรวจสอบโครงสร้างตาราง:
mysql> desc AddingColumnDefaultValueNOTNULL;
+-----------+--------------+------+-----+---------+----------------+ | 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 | | +-----------+--------------+------+-----+---------+----------------+
เพิ่มคอลัมน์ City ที่มีค่า NOT NULL:
mysql> alter table AddingColumnDefaultValueNOTNULL add column City varchar(20) NOT NULL after Age; Query OK, 0 rows affected (2.17 sec)
ตรวจสอบโครงสร้างอีกครั้ง:
mysql> desc AddingColumnDefaultValueNOTNULL;
+-----------+--------------+------+-----+---------+----------------+ | 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 | | +-----------+--------------+------+-----+---------+----------------+
สังเกตคอลัมน์ City: คอลัมน์ Null แสดงค่า NO หมายถึงไม่สามารถใส่ค่า NULL ได้