Computer >> บทช่วยสอนคอมพิวเตอร์ >  >> การเขียนโปรแกรม >> MySQL

ใช้ UNIQUE Constraint สำหรับคอลัมน์ VARCHAR ใน MySQL

การเพิ่ม 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 ไม่ซ้ำ จึงบันทึกได้