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);