บทช่วยสอนนี้อธิบายวิธีสร้าง เพิ่ม และลบเงื่อนไข UNIQUE ใน SQL Server
เงื่อนไข UNIQUE ใน SQL Server คืออะไร?
เงื่อนไข UNIQUE เป็นฟิลด์หรือชุดฟิลด์ข้อมูลที่ระบุระเบียนได้อย่างเฉพาะเจาะจง ฟิลด์บางส่วนอาจมีค่า NULL ได้ ตราบใดที่ชุดค่ามีความเฉพาะเจาะจง
ความแตกต่างระหว่างเงื่อนไข UNIQUE และ Primary Key
| Primary Key | Unique Constraint |
|---|---|
| ไม่มีฟิลด์ใน Primary Key ที่อนุญาตให้มีค่า NULL | ฟิลด์บางส่วนของ Unique Constraint อาจมีค่า NULL ได้ ตราบใดที่ชุดค่ามีความเฉพาะเจาะจง |
สร้างเงื่อนไข UNIQUE ด้วยคำสั่ง CREATE TABLE
CREATE TABLE ten_bang
(
cot1 kieudulieu [ NULL | NOT NULL ],
cot2 kieudulieu [ NULL | NOT NULL ],
...
CONSTRAINT ten_rangbuoc UNIQUE (cot1_rb, cot2_rb, ... cot_n_rb)
);
ten_bang: ชื่อตารางที่ต้องการสร้าง
cot1, cot2: คอลัมน์ที่ต้องการสร้างในตาราง
ten_rangbuoc: ชื่อเงื่อนไข UNIQUE
cot1_rb, cot2_rb, ..., cot_n_rb: คอลัมน์ที่ประกอบเป็นเงื่อนไข UNIQUE
ตัวอย่าง
CREATE TABLE nhanvien
( id_nhanvien INT PRIMARY KEY,
so_nhanvien INT NOT NULL,
ho VARCHAR(50) NOT NULL,
ten VARCHAR(50),
luong MONEY,
CONSTRAINT nhanvien_duynhat UNIQUE (so_nhanvien)
);
ในตัวอย่างนี้ เราสร้างเงื่อนไข UNIQUE ชื่อ nhanvien_duynhat บนตารางที่สร้างด้วยคำสั่ง CREATE TABLE ประกอบด้วยฟิลด์เดียวคือ so_nhanvien
สามารถสร้างเงื่อนไข UNIQUE ที่มีมากกว่า 1 ฟิลด์ได้ ดังตัวอย่างด้านล่าง
CREATE TABLE nhanvien
( id_nhanvien INT PRIMARY KEY,
so_nhanvien INT NOT NULL,
ho VARCHAR(50) NOT NULL,
ten VARCHAR(50),
luong MONEY,
CONSTRAINT nhanvien_duynhat UNIQUE (ho, ten)
);
สร้างเงื่อนไข UNIQUE ด้วยคำสั่ง ALTER TABLE
ALTER TABLE ten_bang
ADD CONSTRAINT ten_rangbuoc UNIQUE (cot1, cot2, ..., cot_n);
ten_bang: ชื่อตารางที่ต้องการแก้ไข นี่คือตารางที่ต้องการเพิ่มเงื่อนไข UNIQUE
ten_rangbuoc: ชื่อเงื่อนไข UNIQUE ที่ต้องการสร้าง
cot1, cot2, ..., cot_n: คอลัมน์ที่ประกอบเป็นเงื่อนไข UNIQUE
ตัวอย่าง
ALTER TABLE nhanvien
ADD CONSTRAINT nhanvien_duynhat UNIQUE (so_nhanvien);
ตัวอย่างด้านบนใช้คำสั่ง ALTER TABLE เพื่อสร้างเงื่อนไข UNIQUE บนตารางที่มีอยู่แล้ว ชื่อ nhanvien ฟิลด์ so_nhanvien สำหรับสร้างเงื่อนไขมากกว่า 1 ฟิลด์ ดูตัวอย่างด้านล่าง
ALTER TABLE nhanvien
ADD CONSTRAINT nhanvien_duynhat UNIQUE (ho, ten);
ลบเงื่อนไข UNIQUE
ไวยากรณ์
ALTER TABLE ten_bang
DROP CONSTRAINT ten_rangbuoc;
ten_bang: ชื่อตารางที่ต้องการแก้ไข นี่คือตารางที่ต้องการลบเงื่อนไข UNIQUE
ten_rangbuoc: ชื่อเงื่อนไข UNIQUE ที่ต้องการลบ
ตัวอย่าง
ALTER TABLE nhanvien
DROP CONSTRAINT nhanvien_duynhat;
ตัวอย่างด้านบนลบเงื่อนไข UNIQUE ชื่อ nhanvien_duynhat บนตาราง