一個表的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最大的重複資料即可!