當資料表存在多組重複主鍵值時,逐筆刪除效率極低。標準流程利用暫存表分組統計、去重、刪除、回寫,確保資料完整性。
GROUP BY 查詢確認重複 PK 群組數與每組筆數。SELECT col1, col2, col3=count(*) INTO holdkey FROM t1 GROUP BY col1, col2 HAVING count(*) > 1
SELECT DISTINCT t1.* INTO holddups FROM t1, holdkey WHERE t1.col1=holdkey.col1 AND t1.col2=holdkey.col2
DELETE t1 FROM t1, holdkey WHERE t1.col1=holdkey.col1 AND t1.col2=holdkey.col2
INSERT t1 SELECT * FROM holddups
此流程適用於大量重複主鍵資料的批次清理,確保零資料遺失風險。