在MySQL中新增UNIQUE約束時重複記錄會發生什麼?

Linda Hamilton
發布: 2024-11-03 08:00:30
原創
918 人瀏覽過

What Happens to Duplicate Records When Adding a UNIQUE Constraint in MySQL?

確定ALTER IGNORE TABLE ADD UNIQUE 對重複記錄的影響

嘗試在表的多個列上添加UNIQUE 約束時,不可避免地會遇到違反此約束的重複記錄。在 MySQL 的早期版本中,ALTER TABLE 語句中的 IGNORE 子句在處理此類重複項方面發揮了至關重要的作用。

MySQL 5.7.4 及更高版本:已刪除IGNORE 子句

然而,從MySQL 5.7.4 開始,IGNORE 子句已被棄用,使用子句現在它會導致錯誤。因此,以下概述的舊行為不再適用。

舊MySQL 版本中的行為

對於支援IGNORE 子句的舊MySQL 版本,以下行為會發生:新增UNIQUE 約束:

  • 保留第一行: 僅保留新唯一列上具有重複值的行中的第一 行。
  • 其他重複行被刪除:具有重複值的剩餘行將自動刪除。
  • 截斷不正確的值:任何違反其他值的值限制被截斷或修改以適應可接受的限制。

在提供的範例中,在(類型,所有者)上將UNIQUE 約束添加到包含類型= 'Apple' 和所有者的重複記錄的表中= 'Apple CO',將保留具有最小ID 的記錄。具有相同值的其他記錄將被刪除。

但是,需要注意的是,此行為是特定於 5.7.4 之前的 MySQL 版本。在現代MySQL版本中,不再支援IGNORE子句,所有衝突的記錄都會導致ALTER TABLE操作失敗。

以上是在MySQL中新增UNIQUE約束時重複記錄會發生什麼?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

來源:php.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
作者最新文章
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板