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

UNIQUE เป็นข้อกำหนด (Constraint) ใน SQL ที่ใช้สำหรับบังคับให้ค่าภายในคอลัมน์ “ต้องไม่ซ้ำกัน” สามารถใช้กับคอลัมน์เดียวหรือหลายคอลัมน์ร่วมกันก็ได้

ต่างจาก PRIMARY KEY ตรงที่

  • UNIQUE อนุญาตให้มีค่า NULL ได้ (1 ค่าหรือมากกว่า ขึ้นอยู่กับ DBMS)
  • ในตารางหนึ่งสามารถมี UNIQUE ได้หลายชุด

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

column_name datatype UNIQUE

หรือ

CONSTRAINT constraint_name UNIQUE (column1, column2)

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

กำหนด UNIQUE ให้กับคอลัมน์เดียว

SQL
CREATE TABLE users (
  user_id INT PRIMARY KEY,
  username VARCHAR(50) UNIQUE,
  email VARCHAR(100)
);
  • ค่า username ต้องไม่ซ้ำกัน

เพิ่ม UNIQUE แบบกำหนดชื่อ constraint

SQL
CREATE TABLE employees (
  id INT PRIMARY KEY,
  email VARCHAR(100),
  CONSTRAINT uc_email UNIQUE (email)
);
  • uc_email คือชื่อของ constraint (สามารถใช้สำหรับแก้ไข/ลบภายหลังได้)

ใช้ UNIQUE กับหลายคอลัมน์ (Composite Unique)

SQL
CREATE TABLE reservations (
  customer_id INT,
  room_id INT,
  booking_date DATE,
  CONSTRAINT uc_room_booking UNIQUE (room_id, booking_date)
);
  • ป้องกันการจองห้อง room_id ซ้ำในวันเดียวกัน

เพิ่ม UNIQUE ภายหลังด้วย ALTER TABLE

SQL
ALTER TABLE users ADD UNIQUE (email);
แชร์เรื่องนี้