ERROR 1071 (42000): Specified key was too long; max key length is 767 bytes

最近由于年底了,公司人员流动打,又接了一个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的过大.在来补上.

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值