หลายคนเข้าใจผิดว่า Primary Key คือ Unique Key เพราะทั้งคู่ระบุตารางได้อย่างเฉพาะเจาะจง แต่ Unique Key ต่างจาก Primary Key จุดสำคัญคือ Unique Key ยอมรับค่า NULL ได้ ส่วน Primary Key ห้ามมี NULL
การเปรียบเทียบ Primary Key และ Unique Key
1. การใช้งาน (Usage)
Unique Key ใช้ป้องกันค่าซ้ำในคอลัมน์ Primary Key ให้ความเป็นเอกidentity กับตาราง
2. ค่า NULL
Primary Key ไม่ยอมรับค่า NULL Unique Key ยอมรับค่า NULL ได้ 1 ค่า (ในบางระบบอาจหลายค่า ขึ้นอยู่กับ implementation)
3. จำนวน
ตารางมี Primary Key ได้เพียง 1 ตัว Unique Key สามารถมีหลายตัวในตารางเดียวกันได้
4. การป้องกันข้อมูลซ้ำ
Unique Key รับรองว่าไม่มีข้อมูลซ้ำใน 2 แถว แถวสามารถมี NULL ได้ในกรณี Unique Key
5. การแก้ไข (Modification)
Primary Key ไม่สามารถแก้ไขได้ (โดยทั่วไป) Unique Key สามารถแก้ไขได้
ตัวอย่าง
ตาราง Employee:
| Emp_ID (PK) | Email (UK) | Phone (UK) | Name |
|---|---|---|---|
| 1 | john@email.com | 081-111-1111 | John |
| 2 | jane@email.com | NULL | Jane |
| 3 | NULL | 081-333-3333 | Bob |
Emp_ID = Primary Key (unique, not null)
Email, Phone = Unique Keys (unique, can be null)