Computer >> Máy Tính >  >> Lập trình >> MySQL

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

Đối với điều này, bạn có thể sử dụng ràng buộc DUY NHẤT trên một hoặc nhiều cột -

alter table yourTablleName add unique(yourColumnName1,yourColumnName2,...N);

Đầu tiên chúng ta hãy tạo một bảng -

mysql> create table DemoTable1598
   -> (
   -> EmployeeId int,
   -> EmployeeName varchar(20),
   -> EmployeeCountryName varchar(20)
   -> );
Query OK, 0 rows affected (0.52 sec)

Đây là truy vấn để triển khai UNIQUE trên các cột varchar -

mysql> alter table DemoTable1598 add unique(EmployeeName,EmployeeCountryName);
Query OK, 0 rows affected (0.55 sec)
Records: 0  Duplicates: 0  Warnings: 0

Chèn một số bản ghi vào bảng bằng lệnh chèn -

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'

Hiển thị tất cả các bản ghi từ bảng bằng câu lệnh select -

mysql> select * from DemoTable1598;

Điều này sẽ tạo ra kết quả sau -

+------------+--------------+---------------------+
| EmployeeId | EmployeeName | EmployeeCountryName |
+------------+--------------+---------------------+
|        101 | Adam         |                AUS  |
|        102 | John         |                US   |
|        103 | Adam         |                US   |
+------------+--------------+---------------------+
3 rows in set (0.00 sec)