首頁  >  文章  >  資料庫  >  以下是一些標題選項,請記住問題格式和文章的重點: **選項 1(直接且簡潔):** MySQL建立非唯一索引後如何刪除重複項?

以下是一些標題選項,請記住問題格式和文章的重點: **選項 1(直接且簡潔):** MySQL建立非唯一索引後如何刪除重複項?

Mary-Kate Olsen
Mary-Kate Olsen原創
2024-10-25 12:37:02856瀏覽

Here are a few title options, keeping in mind the question format and the article's focus:

**Option 1 (Direct & Concise):** 
How to Remove Duplicates After Creating a Non-Unique Index in MySQL?

**Option 2 (More Specific):**
MySQL Duplicate Rows: How to

使用唯一索引刪除重複項

在給定的場景中,由於列上的索引配置錯誤,重複項被意外插入到表中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 不再支援。但是,可以使用以下方法:

  1. 將資料複製到臨時表中。
  2. 截斷原始表。
  3. 在表格上建立唯一索引.
  4. 使用 INSERT IGNORE 將資料插入回原始表。

此程序將在 INSERT 操作期間刪除重複項。

以上是以下是一些標題選項,請記住問題格式和文章的重點: **選項 1(直接且簡潔):** MySQL建立非唯一索引後如何刪除重複項?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn