mysql 建表提示: Specified key was too long; max key length is 767 bytes

这是那段代码:CREATETABLE`t_order`(`id`varchar(255)NOTNULL,`bianhao`varchar(255)defaultNULL,... 这是 那段代码:
CREATE TABLE `t_order` (
`id` varchar(255) NOT NULL,
`bianhao` varchar(255) default NULL,
`shijian` varchar(255) default NULL,
`zhuangtai` varchar(255) default NULL,
`songhuodizhi` varchar(255) default NULL,
`fukuanfangshi` varchar(255) default NULL,
`jine` int(11) default NULL,
`user_id` varchar(255) default NULL,
PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
但是 前面几个表没有出现这个问题
展开
 我来答
兄弟连IT教育03
2016-07-07 · TA获得超过389个赞
知道小有建树答主
回答量:515
采纳率:66%
帮助的人:181万
展开全部
字段设置unique索引的时候,是Mysql的字段设置的太长了,把相关字段的长度改了一下就好了。

建立索引时,数据库计算key的长度是累加所有Index用到的字段的char长度后再按下面比例乘起来不能超过限定的key长度1000:
latin1 = 1 byte = 1 character
uft8 = 3 byte = 1 character
gbk = 2 byte = 1 character
举例能看得更明白些,以GBK为例:
CREATE UNIQUE INDEX `unique_record` ON reports (`report_name`, `report_client`, `report_city`);
其中report_name varchar(200), report_client varchar(200), report_city varchar(200)
(200 + 200 +200) * 2 = 1200 > 1000,所有就会报1071错误,只要将report_city改为varchar(100)那么索引就能成功建立。
百度网友4b68195
2013-01-10 · TA获得超过1520个赞
知道大有可为答主
回答量:1773
采纳率:100%
帮助的人:1728万
展开全部

没有问题

本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
百度网友9d1efda
2016-06-26 · 超过56用户采纳过TA的回答
知道小有建树答主
回答量:141
采纳率:0%
帮助的人:84.9万
展开全部
指定的长度太长了,你看看哪个超过了767,MySQL的varchar主键只支持不超过768个字节 或者 768/2=384个双字节 或者 768/3=256个三字节的字段
而 GBK是双字节的,UTF-8是三字节的。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
喜帖街_houma
2018-03-30 · TA获得超过5930个赞
知道小有建树答主
回答量:79
采纳率:83%
帮助的人:1.2万
展开全部

Mysql的字段设置的太长。

  • 建立索引时,数据库计算key的长度是累加所有Index用到的字段的char长度;再按下面比例相乘不能超过限定的key长度1000:
    latin1=1 byte=1 character;
    uft8=3 byte=1 character;
    gbk=2 byte=1 character。

  • 解决方法:

  1. 修改字段长度;

  2. 修改mysql默认的存储引擎。

参考资料

mysql:Specified key was too long; max key leng报错问题-问答-云栖社....阿里云[引用时间2017-12-29]

本回答被网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(2)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式