MySql新增聯合唯一索引

2021-09-03 01:23:12 字數 913 閱讀 3823

專案需要將某個表的某兩個字段新增唯一索引,保證這兩個欄位的值不能同時重複。

alter table 表名 add  unique index 索引名 (欄位1,欄位2)

當表中已經存在重複資料的時候,新增的時候就會報錯,這時候需要將資料去重。

1.先查出來重複的資料

select * from (select 字段,count(1) as num from 表 group by 字段) temp where num > 1

手動刪除。

2.alter ignore table 表名 add  unique index 索引名 (欄位1,欄位2)

它會刪除重複的記錄(會保留一條),然後建立唯一索引,高效而且人性化(未測試)。

1、新增primary key(主鍵索引)

alter table `table_name` add primary key ( `column` )

2、新增unique(唯一索引)

alter table `table_name` add unique ( `column` )  

3、新增index(普通索引)

alter table `table_name` add index index_name ( `column` )

4、新增fulltext(全文索引)

mysql>alter table `table_name` add fulltext ( `column`)  

5、新增多列索引

alter table `table_name` add index index_name ( `column1`, `column2`, `column3` )

mysql 給表新增乙個聯合唯一索引

專案中需要用到聯合唯一索引 例如 有以下需求 每個人每一天只有可能產生一條記錄 處了程式約定之外,資料庫本身也可以設定 例如 user表中有userid,username兩個字段,如果不希望有2條一模一樣的記錄,需要給user表新增多個欄位的聯合唯一索引 alter table user add n...

mysql 給表新增乙個聯合唯一索引

專案中需要用到聯合唯一索引 例如 有以下需求 每個人每一天只有可能產生一條記錄 處了程式約定之外,資料庫本身也可以設定 例如 user表中有userid,username兩個字段,如果不希望有2條一模一樣的記錄,需要給user表新增多個欄位的聯合唯一索引 alter table user add n...

mysql中,索引,主鍵,唯一索引,聯合索引的區別

mysql中,索引,主鍵,唯一索引,聯合索引的區別,對資料庫的效能有什麼影響。1 索引是一種特殊的檔案 innodb資料表上的索引是表空間的乙個組成部分 它們包含著對資料表裡所有記錄的引用指標。2 普通索引 由關鍵字key或index定義的索引 的唯一任務是加快對資料的訪問速度。3 普通索引允許被索...