ใช้ NULL DEFAULT '' ในการเพิ่มคอลัมน์ เพื่อให้รับ NULL ได้ แต่ Default เป็น Empty String
ไวยากรณ์
ALTER TABLE yourTableName ADD yourColumnName yourDataType NULL DEFAULT '';
ตัวอย่างการใช้งาน
สร้างตาราง:
mysql> create table AllowNullDefaulNotNullDemo (
-> Id int NOT NULL AUTO_INCREMENT,
-> UserName varchar(20),
-> PRIMARY KEY(Id)
-> );
Query OK, 0 rows affected (0.65 sec)
เพิ่มคอลัมน์ UserAddress:
mysql> ALTER TABLE AllowNullDefaulNotNullDemo ADD UserAddress varchar(20) NULL DEFAULT ''; Query OK, 0 rows affected (1.04 sec)
ตรวจสอบโครงสร้าง:
mysql> DESC AllowNullDefaulNotNullDemo;
+-------------+-------------+------+-----+---------+----------------+ | Field | Type | Null | Key | Default | Extra | +-------------+-------------+------+-----+---------+----------------+ | Id | int(11) | NO | PRI | NULL | auto_increment | | UserName | varchar(20) | YES | | NULL | | | UserAddress | varchar(20) | YES | | | | +-------------+-------------+------+-----+---------+----------------+
คอลัมน์ Default แสดงว่าง (Empty String) และ Null = YES
ทดสอบ Insert:
mysql> INSERT INTO AllowNullDefaulNotNullDemo(UserAddress) VALUES ('US');
mysql> INSERT INTO AllowNullDefaulNotNullDemo(UserAddress) VALUES (NULL);
mysql> INSERT INTO AllowNullDefaulNotNullDemo() VALUES ();
ผลลัพธ์:
+-------------+ | UserAddress | +-------------+ | US | | NULL | | | +-------------+
แถวที่ 3 ไม่ระบุค่า จึงได้ Empty String ('') ตาม Default