mysql 1071 specified_MySQL 问题分析 : ERROR 1071 (42000) : Specified key was too long

原标题:MySQL 问题分析 : ERROR 1071 (42000) : Specified key was too long

来源:潇湘隐者 ,

www.cnblogs.com/kerrycode/p/9680881.html

今天在MySQL 5.6版本的数据库中修改InnoDB表字段长度时遇到了”ERROR 1071 (42000): Specified key was too long; max key length is 767 bytes”错误,第一次遇到这个错误,遂花了点学习、研究过、总结这个问题。

我们先来创建一个测试表,构造这样的错误。

mysql> use MyDB;

Reading table information for completion of table and column names

You can turn off this feature to get a quicker startup with -A

Database changed

mysql> CREATE TABLE `TEST` (

-> `CODE_NAME` varchar(100) NOT NULL DEFAULT '',

-> `CODE_SEQ` smallint(6) NOT NULL DEFAULT '1',

-> `ACTIVE` char(1) DEFAULT 'Y',

-> `CODE_VALUE1` varchar(250) DEFAULT NULL,

-> PRIMARY KEY (`CODE_NAME`,`CODE_SEQ`),

-> KEY `IDX_GEN_CODE` (`CODE_NAME`,`CODE_VALUE1`)

-> ) ENGINE=InnoDB DEFAULT CHARSET=utf8;

Query OK, 0 rows affected (0.02 sec)

mysql> ALTER TABLE TEST MODIFY CODE_VALUE1 VARCHAR(350);

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

mysql>

其实这个“ERROR 1071 (42000): Specified key was too long; max key length is 767 bytes”错误是指超出索引字节的限制,并不是指字段长度限制。在官方文档“Limits on InnoDB Tables”有关于这方面的介绍、描述(详情请见参考资料):

MySQL 5.6文档内容如下

By default, the index key prefix length limit is 767 bytes. See Section 13.1.13, “CREATE INDEX Syntax”. For example, you might hit this limit with a column prefix index of more than 255 characters on a TEXT or

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值