Computer >> บทช่วยสอนคอมพิวเตอร์ >  >> การเขียนโปรแกรม >> MySQL

คืนค่าคอลัมน์เป็นค่าเริ่มต้น (DEFAULT) ใน MySQL

ใช้คำสั่ง 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