MySQL 中的 unique key 是一种约束,可确保列值或列组合的唯一性,允许值重复但特定的组合值只能出现一次,主要用于保证数据完整性、提高查询效率和强制业务规则。

什么是 MySQL 中的 unique key?
unique key 是 MySQL 中用于确保表中某一列或多列的唯一性的约束。它允许列中的值重复出现,但每个特定组合的值只能出现一次。
unique key 的作用
unique key 主要用于以下目的:
- 保证数据的完整性和唯一性: unique key 确保表中的数据不会出现重复的记录,从而保证数据的准确性和可靠性。
- 提高查询效率: unique key 可以创建索引,从而加快基于唯一列的查询速度。索引允许 MySQL 快速定位特定值,而不是扫描整个表。
- 强制业务规则: unique key 可以强制实施业务规则,例如确保客户 ID 或订单号的唯一性。
unique key 的创建
在 MySQL 中,使用 ALTER TABLE 语句创建 unique key:
ALTER TABLE table_name ADD UNIQUE (column_name);
例如,以下语句在名为 orders 的表中创建唯一索引,基于 order_id 列:
ALTER TABLE orders ADD UNIQUE (order_id);
unique key 与 primary key 的区别
- primary key 是一个唯一键,并且它还用于标识表的每一行。
- unique key 是一个保证列唯一性的约束,但它不必用于标识行。
unique key 的限制
- unique key 允许列中的值重复出现,但每个特定组合的值只能出现一次。
- 如果在 unique key 列上更新数据,并且新值与现有值相同,则更新将失败。
- 如果在 unique key 列上插入重复值,则插入将失败。










