mysql 重覆記錄

2021-09-27 11:36:47 字數 715 閱讀 2298

不希望資料表中有重覆記錄的時候我們可以給表新增乙個聯合唯一索引 例如,user表中有user_id,user_name兩個字段,如果不希望有兩條一摸一樣的的user_id和user_name,我們可以給user表新增兩個欄位的聯合唯一索引:

alter table user add unique index(user_id,user_name); 這樣當向表中新增相同記錄的時候,會返回1062的新增失敗資訊。 但是有一種情況是表中已經有n個重複的記錄,這時候我們才想起來要新增唯一索引,再執行上面的操作時,資料庫會告訴你已經有重複的記錄了,建立索引失敗,這時候,我們可以用下面的操作:

alter ignore table user add unique index(user_id,user_name); 它會刪除重複的記錄(別怕,會保留一條),然後建立唯一索引,高效而且人性化。 尤其是綠色的那條sql,在建立索引的同時刪除了重複資料,相當有用。

下面介紹一下mysql的幾種索引

檢視索引  show index from 資料庫表名 alter table 資料庫add index 索引名稱(資料庫欄位名稱) primary key(主鍵索引) alter table `table_name` add primary key ( `column` ) unique(唯一索引) alter table `table_name` add unique (`column`) index(普通索引) mysql

sql 重覆記錄和重覆記錄數

如果table1有兩個column adress和pepole,那麼下面的sql可以找出table1裡的重覆記錄和重覆記錄數 create table table1 adress nvarchar 10 pepole nvarchar 10 insert table1 select 寧波 張三 nb...

SQL查詢重覆記錄,刪除重覆記錄

1 查詢表中多餘的重覆記錄,重覆記錄是根據單個字段 docid 來判斷 select from tablename where docid in select docid from tablename group by docid h ing count docid 1 例二 select from...

MySQL不插入重覆記錄

想插入一條記錄,如果有則不插入,無則插入。表示由乙個自增長id主鍵和其他幾個記錄 t version id,package name,first,second,third,forth 原先想用insert ignore into,但是發現沒有用,因為它把id也看做不同。於是我找了網上的另外一種方法 ...