首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫

MySQL 唯一索引 (UNIQUE) 創建、管理與約束實戰指南

     編輯:MySQL 資料庫相關知識

唯一索引核心作用

唯一索引 不為提速,只為約束數據唯一性。允許多個 NULL 值(NULL 不參與唯一性比較),一張表可建多個唯一索引。

三種創建方式

1. 建表時直接定義

CREATE TABLE `student` (
  `stu_id` INT(11) NOT NULL AUTO_INCREMENT,
  `name` VARCHAR(255) DEFAULT NULL,
  PRIMARY KEY (`stu_id`),
  UNIQUE KEY `UK_student_name` (`name`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;

2. 獨立創建索引語句

CREATE UNIQUE INDEX UK_student_name ON student (name);

3. 建表後添加約束

ALTER TABLE student ADD CONSTRAINT uk_student_name UNIQUE (name);

刪除與修改

  • 刪除索引:ALTER TABLE student DROP INDEX name;(此處 name 為索引名,非列名)
  • 聯合唯一索引:ALTER TABLE user ADD UNIQUE INDEX idx_uid_uname (user_id, user_name);

實戰注意點

  1. 大表添加唯一索引會鎖表(舊版本),5.6+ Online DDL 可緩解。
  2. 業務主鍵(如身份證、手機號)建議走唯一索引,業務無關自增 ID 走主鍵。
  3. 聯合唯一索引列順序遵循「最左前綴」與高選擇性優先原則。
  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved