2011-08-09 35 views
0

我試圖從我的數據庫中刪除所有重複項。我在這個網站上找到了下面的代碼。問題是它刪除了我的整個數據庫。令人遺憾的是,我對MySQL的瞭解不夠多,不知道爲什麼它擺脫了所有條目,而不僅僅是重複。使用MS Access查找重複項並刪除它們

DELETE FROM RosterPool AS t1 
WHERE EXISTS (SELECT 1 from RosterPool t2 
WHERE t1.Rate = t2.Rate 
AND t1.FullName = t2.FullName 
AND t1.Last4 = t2.Last4 
AND t1.Graduated = t2.Graduated); 

有沒有辦法將所有副本移動到另一個表,只是刪除該表?

+0

我正在使用MS Access和數據庫查詢使用MySQL語言。 – Navybofus

回答

0

在SQL數據庫中沒有「移動」操作。只有插入,更新和刪除。

如果您想要安全地玩它,您可以將刪除查詢轉換爲選擇查詢,以查看如果將其作爲刪除查詢運行,但是沒有辦法從一個「移動」一行表到另一個,而不需要執行插入/選擇+刪除操作序列。

0

只需在要刪除重複項的列上強制使用uniqe項。 添加列率的唯一密鑰你寫:

ALTER TABLE RosterPool ADD UNIQUE (Rate); 

是要給你一個錯誤,如果你已經有重複的行, 但通過添加關鍵字忽略,您可以強制其加入潮頭和忽略警告

ALTER IGNORE TABLE RosterPool ADD UNIQUE (Rate); 
+0

感謝您的提示。現在...我要玩這個來嘗試在檢查中添加另一列,因爲真正唯一的方法是檢查LastNames和Last4是否與其他條目LastNames和Last4匹配 – Navybofus

+0

你可以有更多的一列:「ALTER IGNORE TABLE RosterPool AD​​D UNIQUE(Rate,FullName(100),Last4,Graduated)」,注意你必須在文本列上指定長度 –