mysql建立联合索引,mysql建立唯一键,mysql如何解决重复记录联合索引
生活随笔
收集整理的這篇文章主要介紹了
mysql建立联合索引,mysql建立唯一键,mysql如何解决重复记录联合索引
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
在項目中,常常要用到聯合唯一
?
在一些配置表中,一些列的組合成為一條記錄。
?
比如,在游戲中,游戲的分區和用戶id會形成一條記錄。(比如,一個qq用戶可以在艾歐尼亞、德瑪西亞創建兩個賬號)
- 添加聯合唯一索引
alter table lol_region_user_table add unique index(user_id,game_region);
-- 解釋版
alter table 表名 add unique index(字段1,字段2);
但是有一種情況是表中已經有n個重復的記錄,這時候我們才想起來要添加唯一索引,再執行上面的操作時,數據庫會返回1062的添加失敗信息,告訴你已經有重復的記錄了,建立索引失敗。
- 我們可以通過這條sql去查詢目前重復的記錄:
select user_id,game_region,count(*) as count from lol_region_user_table group by user_id,game_region having count>1;
-- 解釋版:
select 字段1,字段2,count(*) as count from 表名 group by 字段1,字段2 having count>1;
- 我們可以用下面的操作刪除重復條目并創建:
alter ignore table lol_region_user_table add unique index(user_id,game_region);
-- 解釋版
alter ignore table 表名 add unique index(字段1,字段2);
它會刪除重復的記錄(別怕,會保留一條),然后建立唯一索引,高效而且人性化。
尤其是添加了ignore的這條sql,在建立索引的同時刪除了重復數據,相當有用。
總結
以上是生活随笔為你收集整理的mysql建立联合索引,mysql建立唯一键,mysql如何解决重复记录联合索引的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 本地打包Docker镜像上传至阿里云远程
- 下一篇: 关于新技术的引入原则 ——从零开始学架构