MYSQL 创建唯一索引
MySQL 创建唯一索引
在 MySQL 中,唯一索引(Unique Index)可以确保列中的值是唯一的,不允许重复值(NULL 除外)。以下是几种为 MySQL 表添加唯一索引的方法:
1. 创建表时添加唯一索引
CREATE TABLE users ( id INT AUTO_INCREMENT PRIMARY KEY, username VARCHAR(50), email VARCHAR(100), -- 单列唯一索引 UNIQUE INDEX idx_username (username), -- 多列组合唯一索引 UNIQUE INDEX idx_email (email) );
2. 使用 ALTER TABLE 添加唯一索引
单列唯一索引
ALTER TABLE users ADD UNIQUE INDEX idx_username (username);
多列组合唯一索引
ALTER TABLE users ADD UNIQUE INDEX idx_name_email (username, email);
3. 使用 CREATE INDEX 语句添加唯一索引
CREATE UNIQUE INDEX idx_username ON users (username);
4. 添加唯一约束(会自动创建唯一索引)
ALTER TABLE users ADD CONSTRAINT uc_username UNIQUE (username);
注意事项
-
重复值处理:如果表中已有重复数据,添加唯一索引会失败
ERROR 1062 (23000): Duplicate entry 'value' for key 'index_name'
-
NULL 值处理:唯一索引允许多个 NULL 值(除非列有 NOT NULL 约束)
-
查看已有索引:
SHOW INDEX FROM users;
-
删除唯一索引:
ALTER TABLE users DROP INDEX idx_username;
-
性能影响:唯一索引会略微降低插入和更新速度,但能提高查询速度
实际应用示例
-- 为电商系统的商品表添加SKU唯一索引 ALTER TABLE products ADD UNIQUE INDEX idx_sku (sku_code); -- 为用户表的手机号添加唯一索引(允许NULL) ALTER TABLE users ADD UNIQUE INDEX idx_mobile (mobile_number);
唯一索引是保证数据完整性的重要手段,特别适用于用户名、邮箱、手机号、身份证号等需要唯一性的字段。
(图片来源网络,侵删)
(图片来源网络,侵删)
(图片来源网络,侵删)
免责声明:我们致力于保护作者版权,注重分享,被刊用文章因无法核实真实出处,未能及时与作者取得联系,或有版权异议的,请联系管理员,我们会立即处理! 部分文章是来自自研大数据AI进行生成,内容摘自(百度百科,百度知道,头条百科,中国民法典,刑法,牛津词典,新华词典,汉语词典,国家院校,科普平台)等数据,内容仅供学习参考,不准确地方联系删除处理! 图片声明:本站部分配图来自人工智能系统AI生成,觅知网授权图片,PxHere摄影无版权图库和百度,360,搜狗等多加搜索引擎自动关键词搜索配图,如有侵权的图片,请第一时间联系我们。