ไวยากรณ์สร้างตารางพร้อม DEFAULT
CREATE TABLE yourTable (
column1 DATATYPE NOT NULL,
column2 DATATYPE DEFAULT default_value,
...
);
ตัวอย่าง: ตั้งค่าวันที่เข้าทำงานเป็นวันปัจจุบันอัตโนมัติ
CREATE TABLE demo43 (
employee_id INT NOT NULL AUTO_INCREMENT PRIMARY KEY,
employee_name VARCHAR(40) NOT NULL,
employee_status VARCHAR(60) DEFAULT 'NOT JOINED',
employee_joining_date DATE DEFAULT (CURRENT_DATE)
);
เพิ่มข้อมูลทดสอบ
INSERT INTO demo43 (employee_name, employee_status, employee_joining_date)
VALUES ('John', 'JOINED', '2020-05-10');
INSERT INTO demo43 (employee_name, employee_status, employee_joining_date)
VALUES ('David', 'JOINED', '2020-10-12');
-- ไม่ระบุ joining_date → จะใช้ CURRENT_DATE อัตโนมัติ
INSERT INTO demo43 (employee_name) VALUES ('Bob');
ผลลัพธ์ (สมมติวันนี้คือ 2020-10-31)
+-------------+---------------+-----------------+-----------------------+
| employee_id | employee_name | employee_status | employee_joining_date |
+-------------+---------------+-----------------+-----------------------+
| 1 | John | JOINED | 2020-05-10 |
| 2 | David | JOINED | 2020-10-12 |
| 3 | Bob | NOT JOINED | 2020-10-31 |
+-------------+---------------+-----------------+-----------------------+
รายละเอียดสำคัญ
| คอลัมน์ | DEFAULT | หมายเหตุ |
| employee_status | 'NOT JOINED' | ค่าคงที่สตริง |
| employee_joining_date | (CURRENT_DATE) | ฟังก์ชัน — ต้องอยู่ในวงเล็บ |
ฟังก์ชันวันที่/เวลาที่ใช้เป็น DEFAULT ได้ (MySQL 8.0+)
CURRENT_DATE — วันที่ปัจจุบัน (YYYY-MM-DD)
CURRENT_TIME — เวลาปัจจุบัน (HH:MM:SS)
CURRENT_TIMESTAMP / NOW() — วันที่และเวลาปัจจุบัน
UTC_DATE(), UTC_TIME(), UTC_TIMESTAMP() — เวลา UTC
กรณีพิเศษ: TIMESTAMP และ DATETIME
CREATE TABLE demo_ts (
id INT PRIMARY KEY,
created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
updated_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP
);
created_at: ตั้งค่าตอน INSERT ครั้งแรก
updated_at: อัปเดตอัตโนมัติทุกครั้งที่ UPDATE แถวนั้น
ข้อจำกัด
- MySQL ก่อน 8.0.13: ไม่รองรับฟังก์ชันใน DEFAULT ของ DATE (ต้องใช้ TIMESTAMP/DATETIME)
- DEFAULT ไม่สามารถอ้างอิงคอลัมน์อื่นในแถวเดียวกันได้