การเพิ่ม UNIQUE Constraint บนหลายคอลัมน์
alter table yourTableName add unique(yourColumnName1, yourColumnName2, ...);
ตัวอย่างสร้างตารางและเพิ่ม UNIQUE
mysql> create table DemoTable1598 (
-> EmployeeId int,
-> EmployeeName varchar(20),
-> EmployeeCountryName varchar(20)
-> );
Query OK, 0 rows affected (0.52 sec)
mysql> alter table DemoTable1598 add unique(EmployeeName, EmployeeCountryName); Query OK, 0 rows affected (0.55 sec) Records: 0 Duplicates: 0 Warnings: 0
ทดสอบเพิ่มข้อมูล
mysql> insert into DemoTable1598 values(101,'Adam','AUS'); Query OK, 1 row affected (0.18 sec) mysql> insert into DemoTable1598 values(102,'John','US'); Query OK, 1 row affected (0.64 sec) mysql> insert into DemoTable1598 values(103,'Adam','US'); Query OK, 1 row affected (0.23 sec) mysql> insert into DemoTable1598 values(104,'Adam','AUS'); ERROR 1062 (23000): Duplicate entry 'Adam-AUS' for key 'EmployeeName'
ข้อมูลที่บันทึกได้
mysql> select * from DemoTable1598;
+------------+--------------+---------------------+ | EmployeeId | EmployeeName | EmployeeCountryName | +------------+--------------+---------------------+ | 101 | Adam | AUS | | 102 | John | US | | 103 | Adam | US | +------------+--------------+---------------------+ 3 rows in set (0.00 sec)
UNIQUE บนหลายคอลัมน์ (Composite Unique) จะป้องกันการซ้ำของ ชุดค่า ไม่ใช่คอลัมน์เดี่ยว Adam+AUS ซ้ำ จึง error แต่ Adam+US ไม่ซ้ำ จึงบันทึกได้