顾名思义,MySQL UNIQUE 约束维护表中列的唯一性,并且不允许插入重复值。基本上,UNIQUE 约束创建一个索引,使得索引列中的所有值都必须是唯一的。这里值得一提的是,MySQL 表中可以有多个 UNIQUE 列。
我们可以通过在定义列时提及“UNIQUE”关键字来应用 UNIQUE 约束。可以借助以下示例来理解 -
mysql> Create table test3(ID INT UNIQUE, Name Varchar(20));
Query OK, 0 rows affected (0.16 sec)
上面的查询创建了一个名为“test3”的表,其中的“ID”列带有“UNIQUE”约束。我们可以使用 DESCRIBE 语句进行检查,如下所示 -
mysql> DESCRIBE test3;
+-------+-------------+------+-----+---------+-------+
| Field | Type | Null | Key | Default | Extra |
+-------+-------------+------+-----+---------+-------+
| ID | int(11) | YES | UNI | NULL | |
| Name | varchar(20) | YES | | NULL | |
+-------+-------------+------+-----+---------+-------+
2 rows in set (0.04 sec)
UNIQUE 约束也可以通过以下查询应用于表的列 -
mysql> Create table test4(ID INT, Name Varchar(20),UNIQUE(ID));
Query OK, 0 rows affected (0.15 sec)
我们可以使用 DESCRIBE 语句进行检查,如下所示 -
mysql> DESCRIBE test4;
+-------+-------------+------+-----+---------+-------+
| Field | Type | Null | Key | Default | Extra |
+-------+-------------+------+-----+---------+-------+
| ID | int(11) | YES | UNI | NULL | |
| Name | varchar(20) | YES | | NULL | |
+-------+-------------+------+-----+---------+-------+
2 rows in set (0.04 sec)