Specified key was too long; max key length is 767 bytes | VARCHAR(450)問題

問題

Specified key was too long; max key length is 767 bytes

原因

建立索引時,數據庫計算key的長度是累加所有Index用到的字段的char長度後再按下面比例乘起來不能超過限定的key長度1000。
也就是因爲給字符串字段添加唯一索引對字符的長度是有限制
很明顯我在設計時就給一個長度,太長了
在這裏插入圖片描述

解決方案

1.調整字段的字符串長度 VARCHAR(64)
2.修改數據庫限制(innodb_large_prefix )

mysql> set global innodb_file_format = BARRACUDA;
Query OK, 0 rows affected (0.00 sec)
mysql> set global innodb_large_prefix = ON;
Query OK, 0 rows affected (0.00 sec)

3.去掉唯一索引,代碼邏輯上去限制

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章