在MySQL中某些条件下对varchar列使用UNIQUE?
为此,您可以在一个或多个列上使用UNIQUE约束-
alter table yourTablleName add unique(yourColumnName1,yourColumnName2,...N);
让我们首先创建一个表-
mysql> create table DemoTable1598 -> ( -> EmployeeId int, -> EmployeeName varchar(20), -> EmployeeCountryName varchar(20) -> );
这是在varchar列上实现UNIQUE的查询-
mysql> alter table DemoTable1598 add unique(EmployeeName,EmployeeCountryName); Records: 0 Duplicates: 0 Warnings: 0
使用插入命令在表中插入一些记录-
mysql> insert into DemoTable1598 values(101,'Adam','AUS'); mysql> insert into DemoTable1598 values(102,'John','US'); mysql> insert into DemoTable1598 values(103,'Adam','US'); mysql> insert into DemoTable1598 values(104,'Adam','AUS'); ERROR 1062 (23000): Duplicate entry 'Adam-AUS' for key 'EmployeeName'
使用select语句显示表中的所有记录-
mysql> select * from DemoTable1598;
这将产生以下输出-
+------------+--------------+---------------------+ | EmployeeId | EmployeeName | EmployeeCountryName | +------------+--------------+---------------------+ | 101 | Adam | AUS | | 102 | John | US | | 103 | Adam | US | +------------+--------------+---------------------+ 3 rows in set (0.00 sec)