確定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中文網其他相關文章!