為什麼在建立 MySQL 表時出現「無法寫入;表中有重複鍵」錯誤(錯誤 1022)?

DDD
發布: 2024-10-28 04:07:20
原創
290 人瀏覽過

Why am I Getting

偵測到重複:MySQL 表格建立失敗(錯誤1022)

在嘗試使用MySQL Workbench 建立表格時,使用者可能會遇到可怕的情況錯誤1022:「無法寫入;表中有重複的鍵。」儘管用於表創建的SQL 語句看似簡單,但還是出現了此問題。經過仔細檢查,問題變得顯而易見:

罪魁禍首:相同的外鍵名稱

錯誤訊息源自於在域中存在多個具有相同名稱的外鍵。相同的資料庫模型。要理解這個概念,請考慮以下類比:


  • 在商業世界中,每個員工都與一個部門相關聯。

  • 同樣,在資料庫中,子表中的每一行都應該引用父表中的一行。
  • 這種引用機制是透過外鍵建立的,外鍵充當橋樑

當不同表中的兩個不同外鍵引用父表中的同一列時,就會出現此問題。就像員工不能同時在兩個部門工作一樣,子表行不能有多個外鍵指向不同的父表行。

實體範例

考慮下列資料庫模型:


  • 表格「Catalog」包含產品清單。

  • 表格「Supplier」包含產品清單供應商清單。

如果兩個表都包含引用「Supplier」表的名為「supplier_id」的外鍵,MySQL 將傳回錯誤 1022。對於此問題,必須為外鍵指派唯一的名稱。

解決命名衝突

要修正錯誤,請依照下列步驟操作:

  1. 開啟 SQL 語句並找到外鍵定義。
  2. 辨識任何重複的外鍵名稱。
  3. 將重複的外鍵重新命名為唯一名稱。
  4. 執行更新後的SQL語句來建立表格。

透過解決外鍵內的命名衝突,您可以成功建立所需的表並避免「無法寫入;表中出現重複鍵」錯誤。

以上是為什麼在建立 MySQL 表時出現「無法寫入;表中有重複鍵」錯誤(錯誤 1022)?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

來源:php.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板
關於我們 免責聲明 Sitemap
PHP中文網:公益線上PHP培訓,幫助PHP學習者快速成長!