記一次業務中的大坑-MYSQL有重複資料下的增加主鍵

來源:互聯網
上載者:User

標籤:mysql   行業   solr   備份   ima   主鍵   mys   慢慢   creat   

業務過程中,兩張表求差

一開始一張小表,以為資料量不會很大,所以就沒有做索引。
當實際運行過程中,小錶慢慢長大了,發現兩張表求差的時間能達到幾個小時!!!AMAZING!
咋辦,建索引唄
然後問題出現了,小表有重複資料,咋整,一個一個刪除太sb了
寫sql
DELETE FROM solr_indexed_max_incidentID WHERE incidentID IN (SELECT incidentID FROM solr_indexed_max_incidentID GROUP BY incidentID HAVING count(incidentID) > 1);
報錯啦:
ERROR 1093 (HY000): You can‘t specify target table ‘solr_indexed_max_incidentID‘ for update in FROM clause
呵呵,不行
另想轍

先建一個暫存資料表,把去重後的資料烤過來
create table solr_tmp as SELECT * FROM solr_indexed_nax_incidentID GROUP BY incidentID HAVING count(incidentID) > 1;

然後把原表刪了
drop table solr_indexed_max_incidentID;(後來想到這樣做太不專業,應該把這個表改個名字相當於備份在那兒,萬一下一步出錯了不懵逼了?)

然後改名字
RENAME TABLE solr_tmp TO solr_indexed_max_incidentID;

然後加索引
alter table ‘solr_indexed_max_incidentID‘ add primary key(‘incidentID‘);

繼續運行商務邏輯,幾秒鐘求差完成!

記一次業務中的大坑-MYSQL有重複資料下的增加主鍵

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.