ใช้คำสั่ง UPDATE ... SET column = DEFAULT เพื่อคืนค่าเป็นค่าเริ่มต้นของคอลัมน์
สร้างตารางตัวอย่าง
mysql> create table defaultDemo (
-> Id int
-> );
Query OK, 0 rows affected (0.48 sec)
เพิ่มข้อมูลตัวอย่าง
mysql> INSERT INTO defaultDemo VALUES(10), (20), (30), (40), (80), (90), (100);
แสดงข้อมูลก่อน
mysql> SELECT * FROM defaultDemo;
ผลลัพธ์:
+------+ | Id | +------+ | 10 | | 20 | | 30 | | 40 | | 80 | | 90 | | 100 | +------+
คืนค่า DEFAULT สำหรับแถวที่ Id > 45
mysql> UPDATE defaultDemo SET Id = DEFAULT WHERE Id > 45; Query OK, 3 rows affected (0.39 sec)
ตรวจสอบหลังอัปเดต
mysql> SELECT * FROM defaultDemo;
ผลลัพธ์ (ค่า DEFAULT ของ INT คือ NULL):
+------+ | Id | +------+ | 10 | | 20 | | 30 | | 40 | | NULL | | NULL | | NULL | +------+
ข้อสังเกตสำคัญ
- ค่า DEFAULT ขึ้นอยู่กับการกำหนดตาราง (schema definition)
- ถ้าคอลัมน์มี
NOT NULLและไม่มี DEFAULT จะเกิด error - ถ้าคอลัมน์เป็น
AUTO_INCREMENTไม่สามารถ SET DEFAULT ได้โดยตรง - ใช้
SHOW CREATE TABLE table_nameเพื่อดูค่า DEFAULT ของแต่ละคอลัมน์
ตัวอย่างคอลัมน์ที่มี DEFAULT ชัดเจน
CREATE TABLE example (
id INT AUTO_INCREMENT PRIMARY KEY,
status ENUM('active','inactive') DEFAULT 'active',
created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP
);
UPDATE example SET status = DEFAULT WHERE id = 5; -- กลับเป็น 'active'
UPDATE example SET created_at = DEFAULT WHERE id = 5; -- กลับเป็น CURRENT_TIMESTAMP