一個表的model中,根據生產環境需要,需要設置site和對應的cdn服務器ip是聯合唯一的,最開始創建表的時候,沒有考慮到這個問題,後來要設置unique_together,但是在migrate的時候,報錯:a unique database constraint for 2 or more fields together
很明顯數據庫中有很多這兩個字段重複的數據,所以要刪除後再migrate就沒問題了,但是怎麼刪除這些數據呢?
通過以下兩個方法即可:
1)CREATE TEMPORARY TABLE tmp_table SELECT * FROM 目標表;
2)delete from 目標表 where id not in ( select max(id) from tmp_table group by cdn_ipaddr,site_id);
說明:
創建臨時表,把目標表的數據複製到臨時表中;
刪除目標表中數據,只留id最大的重複數據即可!