ไวยากรณ์เปลี่ยน Default Value
ใช้ ALTER TABLE ... CHANGE COLUMN ระบุ Default ใหม่:
ALTER TABLE your_table
CHANGE COLUMN column_name column_name data_type NOT NULL DEFAULT 'new_default';
ตัวอย่างการใช้งาน
สร้างตารางมีคอลัมน์ TIMESTAMP (Default NULL)
CREATE TABLE DefaultDemo (ArrivalTime TIMESTAMP);
โครงสร้างเดิม
DESC DefaultDemo;
+-------------+-----------+------+-----+---------+-------+
| Field | Type | Null | Key | Default | Extra |
+-------------+-----------+------+-----+---------+-------+
| ArrivalTime | timestamp | YES | | NULL | |
+-------------+-----------+------+-----+---------+-------+
เปลี่ยนเป็น NOT NULL DEFAULT CURRENT_TIMESTAMP
ALTER TABLE DefaultDemo
CHANGE COLUMN ArrivalTime ArrivalTime TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP;
ทดสอบ Insert ไม่ระบุค่า
INSERT INTO DefaultDemo VALUES ();
ผลลัพธ์: ได้เวลาปัจจุบันอัตโนมัติ
+---------------------+
| ArrivalTime |
+---------------------+
| 2018-12-07 11:31:00 |
+---------------------+
รูปแบบ Default Value ที่นิยม
| ชนิดข้อมูล | ตัวอย่าง Default |
|---|---|
| INT | DEFAULT 0 |
| VARCHAR | DEFAULT 'N/A' |
| DATETIME | DEFAULT CURRENT_TIMESTAMP (MySQL 5.6.5+) |
| TIMESTAMP | DEFAULT CURRENT_TIMESTAMP |
| BOOLEAN | DEFAULT FALSE |
| JSON | DEFAULT (JSON_OBJECT()) (MySQL 8.0+) |
ลบ Default Value (กลับเป็น NULL)
ALTER TABLE your_table
CHANGE COLUMN column_name column_name data_type DEFAULT NULL;
ดู Default Value ปัจจุบัน
SHOW COLUMNS FROM your_table LIKE 'column_name';
-- หรือ
SELECT COLUMN_DEFAULT FROM information_schema.COLUMNS
WHERE TABLE_SCHEMA = 'db' AND TABLE_NAME = 'table' AND COLUMN_NAME = 'col';