首頁 >資料庫 >mysql教程 >如何修復 MySQL 錯誤:「金鑰規格中使用的 BLOB/TEXT 資料列沒有金鑰長度」?

如何修復 MySQL 錯誤:「金鑰規格中使用的 BLOB/TEXT 資料列沒有金鑰長度」?

Mary-Kate Olsen
Mary-Kate Olsen原創
2025-01-19 23:21:10784瀏覽

How to Fix MySQL Error:

MySQL 錯誤故障排除:關鍵規格中存在 BLOB/TEXT 欄位

本指南解決了MySQL 錯誤「BLOB/TEXT 列'message_id'在金鑰規範中使用而沒有金鑰長度。」當在主鍵或索引中使用BLOB 或TEXT 列而不指定長度時,會發生此錯誤。

問題源自於 BLOB 和 TEXT 資料類型的可變長度性質。 如果沒有定義的大小限制,MySQL 無法保證唯一性。 因此,在索引或使用這些類型作為主鍵時,必須指定鍵長度

但是,MySQL 不允許對 TEXT 或 BLOB 欄位進行鍵長度限制。 解決方案是從索引或主鍵中刪除 BLOB 或 TEXT 列,或選擇其他列作為主鍵。

如果您打算限制 TEXT 或 BLOB 欄位的大小,請考慮使用 VARCHAR 來代替。 在括號中指定最大長度;例如,VARCHAR(255) 將列限制為 255 個字元。

即使沒有 BLOB 或 TEXT 列,由於 VARCHAR 列長度問題,錯誤也可能持續存在。 VARCHAR 的最大長度為 255 個字元。 如果您指定的長度過大(例如 VARCHAR(512)),MySQL 可能會自動將其轉換為 SMALLTEXT,從而導致錯誤。 確保您的 VARCHAR 欄位大小低於 256 個字元。

有關 MySQL 錯誤 1170 的更多詳細信息,特別是有關鍵和主鍵中的 TEXT/BLOB 類型,請參閱參考文件。

以上是如何修復 MySQL 錯誤:「金鑰規格中使用的 BLOB/TEXT 資料列沒有金鑰長度」?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn