MySQL 錯誤#1071:超過最大鍵長度
為包含VARCHAR 資料類型列的MySQL 表新增唯一鍵約束時,可能會遇到下列錯誤:
#1071 - Specified key was too long; max key length is 767 bytes
即使VARCHAR 欄位的組合長度看起來小於最大值,也會發生此錯誤鍵長度,在MySQL 5.6 及之前版本中為 767 位元組。
錯誤原因
MySQL 5.6 及以下版本中 InnoDB 表的規定前綴限制為 767 位元組。這意味著鍵列前綴的組合長度不能超過此限制。對於MyISAM表,最大鍵長度為1,000位元組。
在提供的範例中,列column1和column2分別具有VARCHAR(20)和VARCHAR(500)資料型態。這意味著總長度為 522 字節,在 767 位元組限制以下留有足夠的餘裕。然而,錯誤訊息表明情況並非如此。
解釋
錯誤的原因是MySQL對VARCHAR欄位使用了可變長度的多位元組編碼。這意味著 VARCHAR 欄位中的每個字元都可以由不同數量的位元組表示。例如,VARCHAR(20) 欄位最多可容納 20 個字符,但如果採用 UTF-8mb4 等寬字元格式編碼,每個字元最多可佔用 3 個位元組。
結果,key的實際長度由每列可以儲存的字串的最大可能長度決定。在這種情況下,column1和column2中的字串的最大可能長度分別為20 3位元組= 60位元組和500 3位元組= 1500位元組。總共有 60 1500 = 1560 字節,超過了最大密鑰長度 767 位元組。
解
要解決此問題,您可以考慮以下解決方案:
- 減少 VARCHAR 資料列的最大長度。 對於例如,您可以將 column1 的資料類型變更為 VARCHAR(15)。
- 使用較短的鍵前綴。 您可以只使用它的一個子集,而不是對整個 column2 欄位進行索引,例如column2(200)。
- 使用支援更長密鑰長度的不同表引擎。 MyISAM表的最大密鑰長度為 1,000 字節,這可能足以滿足您的要求。
- 升級到 MySQL 版本 5.7 或更高版本。 MySQL 5.7 及更高版本的最大金鑰長度為 3072字節,提供了更大的靈活性。
以上是為什麼我在創建唯一金鑰時收到 MySQL 錯誤 #1071:超過最大金鑰長度?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

本文討論了使用MySQL的Alter Table語句修改表,包括添加/刪除列,重命名表/列以及更改列數據類型。

文章討論了為MySQL配置SSL/TLS加密,包括證書生成和驗證。主要問題是使用自簽名證書的安全含義。[角色計數:159]

文章討論了流行的MySQL GUI工具,例如MySQL Workbench和PhpMyAdmin,比較了它們對初學者和高級用戶的功能和適合性。[159個字符]

本文討論了使用Drop Table語句在MySQL中放下表,並強調了預防措施和風險。它強調,沒有備份,該動作是不可逆轉的,詳細介紹了恢復方法和潛在的生產環境危害。

本文討論了在PostgreSQL,MySQL和MongoDB等各個數據庫中的JSON列上創建索引,以增強查詢性能。它解釋了索引特定的JSON路徑的語法和好處,並列出了支持的數據庫系統。

文章討論了使用準備好的語句,輸入驗證和強密碼策略確保針對SQL注入和蠻力攻擊的MySQL。(159個字符)


熱AI工具

Undresser.AI Undress
人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover
用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool
免費脫衣圖片

Clothoff.io
AI脫衣器

AI Hentai Generator
免費產生 AI 無盡。

熱門文章

熱工具

MinGW - Minimalist GNU for Windows
這個專案正在遷移到osdn.net/projects/mingw的過程中,你可以繼續在那裡關注我們。 MinGW:GNU編譯器集合(GCC)的本機Windows移植版本,可自由分發的導入函式庫和用於建置本機Windows應用程式的頭檔;包括對MSVC執行時間的擴展,以支援C99功能。 MinGW的所有軟體都可以在64位元Windows平台上運作。

mPDF
mPDF是一個PHP庫,可以從UTF-8編碼的HTML產生PDF檔案。原作者Ian Back編寫mPDF以從他的網站上「即時」輸出PDF文件,並處理不同的語言。與原始腳本如HTML2FPDF相比,它的速度較慢,並且在使用Unicode字體時產生的檔案較大,但支援CSS樣式等,並進行了大量增強。支援幾乎所有語言,包括RTL(阿拉伯語和希伯來語)和CJK(中日韓)。支援嵌套的區塊級元素(如P、DIV),

WebStorm Mac版
好用的JavaScript開發工具

Atom編輯器mac版下載
最受歡迎的的開源編輯器

ZendStudio 13.5.1 Mac
強大的PHP整合開發環境