问题
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.去掉唯一索引
,代码逻辑上去限制