- 索引列的值必须唯一,允许有空值
- 唯一索引是在表上一个或者多个字段组合建立的索引,一张表可以创建多个唯一索引。通过创建唯一索引,可以保证某一列的值具有唯一性
- 使用唯一索引需能确保定义的列的数据完整性,以提高查询速度
示例
CREATE TABLE persons(
id INT(10),
UNIQUE(id),
…
);
CREATE TABLE persons(
id INT(10) UNIQUE,
…
);
Query OK, 0 rows affected (0.5 sec)
Records: 0 Duplicates: 0 Warnings: 0
示例
CREATE UNIQUE INDEX index_name
ON persons(id);
Query OK, 0 rows affected (0.15 sec)
Records: 0 Duplicates: 0 Warnings: 0
示例
CREATE UNIQUE INDEX index_name
ON persons(id, name);
Query OK, 0 rows affected (0.15 sec)
Records: 0 Duplicates: 0 Warnings: 0
示例
ALTER TABLE persons
ADD UNIQUE(id);
Query OK, 0 rows affected (0.15 sec)
Records: 0 Duplicates: 0 Warnings: 0
示例
ALTER TABLE persons
ADD UNIQUE(id, name);
Query OK, 0 rows affected (0.15 sec)
Records: 0 Duplicates: 0 Warnings: 0
注
- 创建唯一性索引的目的不是为了提高访问速度,而是为了避免数据出现重复
- 创建唯一索引的字段,都不能允许为 NULL,否则唯一约束不能保证数据的唯一,从而因为 NULL 值产生重复数据