最近由于年底了,公司人员流动打,又接了一个sql的活.有句话说得好,技多不压身.
问题出现原因:使用Navicat建表时,提示某个key过长,但是检查并没有都是在255以内.多次不同的方式尝试下还是没有结果.
分析:网上很多的分析是key的长度设置大于了255,很明显我没有设置大于255的呀.但是按照这种方式还是解决了这个问题,很low!
解决方式:[转]
https://www.cnblogs.com/kerrycode/p/9680881.html
抽取出来的步骤:
show variables like '%innodb_large_prefix%';
set global innodb_large_prefix=on;
show variables like '%innodb_file_format%';
把1,3都改成Barracuda
set global innodb_file_format=Barracuda;
------到这里我的问题就解决了,可以在Navicat里面从一个数据库复制表到另外一个数据库,也没报错误.如果还有不行的加上下面试试-----------
ALTER TABLE TEST ROW_FORMAT=DYNAMIC;
ALTER TABLE TEST MODIFY CODE_VALUE1 VARCHAR(350);
这个时候就可以了的.我也试过了.如果还不行,那你就重启下软件,电脑,再试一下!
有时间我找一下到底是为什么明明没有设置大于255的key的值,却提示我key的过大.在来补上.