首頁 >資料庫 >mysql教程 >在 MySQL 中使用 ALTER IGNORE TABLE ADD UNIQUE 時會保留哪一筆記錄?

在 MySQL 中使用 ALTER IGNORE TABLE ADD UNIQUE 時會保留哪一筆記錄?

Mary-Kate Olsen
Mary-Kate Olsen原創
2024-11-04 02:51:29809瀏覽

Which record is preserved when using `ALTER IGNORE TABLE ADD UNIQUE` in MySQL?

MySQL:ALTER IGNORE TABLE ADD UNIQUE - 記錄截斷影響

具有IGNORE 子句的ALTER TABLE 語句用於添加唯一約束到表中,可能會刪除重複的記錄。然而,保留的具體記錄可能會引起疑問。

問題:

執行以下語句時:

ALTER IGNORE TABLE `my_table`
ADD UNIQUE (`type`, `owner`);

哪筆記錄如果存在多個具有相同類型和所有者值的重複記錄,是否會保留?

答案:

從MySQL 5.7.4 開始,IGNORE 子句不再存在

但是,在允許IGNORE 子句的早期MySQL 版本不再存在

    但是,在允許IGNORE 子句的早期MySQL 版本中:
  • 保留第一筆記錄:
  • 表中具有唯一組合鍵的第一
  • 行將被保留。 重複行被截斷:具有相同唯一組合鍵的所有其他行將被
  • 已刪除
.

根據MySQL文檔,「第一個」可能指的是具有最低主鍵值的記錄。在您的情況下,假設 ID 列是主鍵,則 ID 最小的記錄將被保留。

以上是在 MySQL 中使用 ALTER IGNORE TABLE ADD UNIQUE 時會保留哪一筆記錄?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

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