使用唯一索引刪除重複項
在給定的場景中,由於列上的索引配置錯誤,重複項被意外插入到表中A、B、C、D。盡管目的是防止重複,但創建的索引是普通索引而不是唯一索引。
查詢執行
如果嘗試將現有索引從普通索引更改為唯一索引或為同一列添加新的唯一索引,查詢將因存在重複記錄而失敗。
使用IGNORE 的替代解決方案選項(5.7.4 之前)
在ALTER TABLE 語法中使用IGNORE 選項可以刪除重複項:
<code class="sql">ALTER IGNORE TABLE mytable ADD UNIQUE INDEX myindex (A, B, C, D);</code>
這將丟棄重複的行,但它是需要注意的是,文件沒有指定將保留哪些行。
MySQL 5.7.4 及更高版本的解決方案
對於版本 5.7.4 及更高版本,忽略ALTER TABLE 不再支援。但是,可以使用以下方法:
此程序將在 INSERT 操作期間刪除重複項。
以上是以下是一些標題選項,請記住問題格式和文章的重點: **選項 1(直接且簡潔):** MySQL建立非唯一索引後如何刪除重複項?的詳細內容。更多資訊請關注PHP中文網其他相關文章!