Computer >> Hướng Dẫn Máy Tính >  >> Lập Trình >> MySQL

Sử dụng UNIQUE cho cột varchar với điều kiện trong MySQL

Ràng buộc UNIQUE trên nhiều cột VARCHAR trong MySQL

Để đảm bảo sự kết hợp duy nhất giữa các cột, sử dụng UNIQUE constraint.

Cú pháp

ALTER TABLE ten_bang ADD UNIQUE(cot1, cot2, ...N);

Ví dụ: Unique trên EmployeeName + EmployeeCountryName

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

Thử chèn dữ liệu

mysql> insert into DemoTable1598 values(101,'Adam','AUS');  -- OK
mysql> insert into DemoTable1598 values(102,'John','US');   -- OK
mysql> insert into DemoTable1598 values(103,'Adam','US');   -- OK (khác quốc gia)
mysql> insert into DemoTable1598 values(104,'Adam','AUS');  -- LỖI: Duplicate entry 'Adam-AUS'

Kết quả

ERROR 1062 (23000): Duplicate entry 'Adam-AUS' for key 'EmployeeName'

Dữ liệu cuối cùng:

+------------+--------------+---------------------+ 
| EmployeeId | EmployeeName | EmployeeCountryName | 
+------------+--------------+---------------------+ 
| 101        | Adam         | AUS                 | 
| 102        | John         | US                  | 
| 103        | Adam         | US                  | 
+------------+--------------+---------------------+

Giải thích: Ràng buộc UNIQUE trên (EmployeeName, EmployeeCountryName) cho phép trùng tên nếu quốc gia khác nhau, nhưng cấm trùng cả hai cột cùng lúc.