最近在做新项目,要走自动化创建一系列的表,突然执行到一条sql 报错 'uk_configinfo_n_t_v' was too long; max key length is 767 bytes,顿时头大了,在本地通过Navicat执行是一丁点问题都没有得,怎么到了走自动化创建表的时候就出现问题了呢?问过度娘 后原来是mysql版本5.6 索引最大是767bytes,也就是 索引字段类型长度加起来不能超过256,5.7以后就不会有这个问题。网上看了看其他解决方案都不怎么现实,我给出以下几个方案:
1.将包含的索引字段类型长度太大的减少下 比如varchar(255)根据实际情况修改为128、64或者32等;
2.去掉太长字段类型长度的索引,说实话 类型varchar这些类型本来做索引就不太合理。