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_TIMESTAMPINTใช้เลขได้เลย เช่นDEFAULT 0