MySQL การใช้งาน DEFAULT Constraint

DEFAULT Constraint ใน MySQL คือข้อกำหนดที่ใช้เพื่อกำหนด “ค่าพื้นฐาน” ให้กับคอลัมน์ในตาราง เมื่อมีการเพิ่มข้อมูล (INSERT) โดยไม่ได้ระบุค่าลงในคอลัมน์นั้น ระบบจะใช้ค่าที่กำหนดไว้ใน DEFAULT เป็นค่าทดแทนให้อัตโนมัติ ซึ่งช่วยให้การจัดการข้อมูลสะดวกขึ้น ลดความผิดพลาด และเหมาะสำหรับข้อมูลที่มักใช้ค่าซ้ำ ๆ อยู่แล้ว เช่น สถานะ, วันที่, ประเภท เป็นต้น

รูปแบบการใช้งาน

column_name datatype DEFAULT default_value

ตัวอย่างการใช้งาน

กำหนดค่าพื้นฐานให้กับคอลัมน์ status

SQL
CREATE TABLE orders (
  order_id INT PRIMARY KEY,
  customer_name VARCHAR(100),
  status VARCHAR(20) DEFAULT 'pending'
);
  • ถ้าไม่ได้ระบุค่าใน status ระบบจะใช้ 'pending' โดยอัตโนมัติ

ใช้ DEFAULT กับวันที่ปัจจุบัน

SQL
CREATE TABLE users (
  user_id INT PRIMARY KEY,
  username VARCHAR(50),
  created_at DATETIME DEFAULT CURRENT_TIMESTAMP
);
  • เมื่อมีการเพิ่มผู้ใช้ใหม่โดยไม่ระบุเวลา ระบบจะใส่เวลา “ขณะนั้น” ให้อัตโนมัติ

ตัวอย่าง INSERT ที่ใช้ค่า DEFAULT อัตโนมัติ

SQL
INSERT INTO orders (order_id, customer_name) 
VALUES (1, 'Somsak');
  • คอลัมน์ status จะได้ค่า 'pending' โดยอัตโนมัติ

ข้อควรระวัง

  • DEFAULT ใช้กับคอลัมน์ที่ไม่ได้ระบุค่า ตอน INSERT เท่านั้น
  • ถ้ามีการระบุค่าเอง DEFAULT จะไม่ถูกใช้
  • ค่า default ต้องตรงกับชนิดของข้อมูลในคอลัมน์ เช่น
    • VARCHAR ต้องใช้ค่าในเครื่องหมายคำพูด 'ค่าเริ่มต้น'
    • DATETIME ใช้ได้กับ CURRENT_TIMESTAMP
    • INT ใช้เลขได้เลย เช่น DEFAULT 0
แชร์เรื่องนี้