排除 MySQL 的「沒有金鑰長度的金鑰規格」錯誤
當在主鍵或索引定義中使用 BLOB 或 TEXT 列而不指定鍵長度時,通常會出現此錯誤。
理解問題
MySQL 的索引機制由於 BLOB 和 TEXT 欄位的長度可變而受到限制。 如果沒有定義長度,資料庫無法保證唯一性,因此會出現錯誤。 正確的金鑰唯一性驗證需要固定長度。
解
有幾種方法可以解決這個問題:
VARCHAR(n)
,其中「n」表示特定字元限制(例如 VARCHAR(255)
)。這提供了具有定義的最大長度的可變長度數據,適合索引。 重要注意事項
VARCHAR
長度保持在 256 個字元以下。 超過此限制會自動將該列轉換為 SMALLTEXT
,可能會重新引入密鑰長度問題。 以上是為什麼 MySQL 會對 BLOB 或 TEXT 欄位拋出「沒有金鑰長度的金鑰規格」錯誤?的詳細內容。更多資訊請關注PHP中文網其他相關文章!