MySQL錯誤1022:揭示根本原因
創建表是資料庫設計的一個基本方面,但有時,可能會出現意想不到的錯誤。其中一個錯誤是臭名昭著的 MySQL 錯誤 1022,它經常在嘗試建立具有重複鍵的表時發生。
在最近的一個案例中,使用者在使用 MySQL Workbench 建立「errors_reports」表時遇到了此錯誤。儘管該表看起來有效,但 MySQL 頑固地拒絕遵守,理由是存在重複鍵。
搜尋罪證鍵
無法直觀地找到麻煩的鍵,用戶煞費苦心地消除了表定義的元素,最終隔離了罪魁禍首:引用“錯誤”表的外鍵約束。
相同外鍵的奇怪情況
奇怪的是,使用者在其他表中遇到了相同的外鍵定義,但沒有出現問題。然而,在這種情況下,MySQL 拒絕容忍重複。
揭露衝突
這個令人困惑的困境的解決方案在於外鍵命名約定的概念。事實證明,外鍵不能在資料庫中共享相同的名稱。這是因為 MySQL 使用外鍵名稱來決定引用指向哪個表和欄位。為多個外鍵分配相同的名稱可能會導致混亂和歧義。
更清晰的表格建立路徑
解決錯誤並成功建立「errors_reports」表中,使用者調整了有問題的外鍵的名稱。透過確保外鍵名稱唯一,使用者滿足了 MySQL 的命名約定,為成功建立表格鋪平了道路。
免責聲明: 提供的所有資源部分來自互聯網,如果有侵犯您的版權或其他權益,請說明詳細緣由並提供版權或權益證明然後發到郵箱:[email protected] 我們會在第一時間內為您處理。
Copyright© 2022 湘ICP备2022001581号-3