mysql刪除完全重複的數據(主鍵重複)

    業務需求刪除表中重複數據只保留一行,網上方法很多,分享一個MySQL中刪除重複數據只保留一條,但是根據主鍵保留數據對我們並不適用。因爲我們主鍵也重複的mmp。(數據表並沒有做主鍵限制,主鍵值由hibernate uuid生成,重複的原因是同步數據時直接執行插入語句多次)。

    背景介紹完畢,進入正題,如何刪除重複數據。直接執行delete語句肯定是不行的,因爲數據是完全重複的,無法用where having等篩選。要保留一條,所以想到了distinct。然後解決方法如下:

    先創建一張表結構相同的新表

    create table new_table like old_table;

    然後複製舊錶數據到新表(去重複)

    insert into new_table select distinct * from old_table;

    然後刪除舊錶,新表改成舊錶的名字

    drop table old_table;

    alert table new_table rename to old_table;

    完工!

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章