打开APP
userphoto
未登录

开通VIP,畅享免费电子书等14项超值服

开通VIP
MySQL数据库报" BLOB/TEXT column 'name' used in key specification without a key length "错误解决方法

问题

给查询高频率字段name添加索引报"BLOB/TEXT column 'name' used in key specification without a key length"错误

原因

出问题的原因是name对象索引的数据类型是TEXT/BLOB或其从属的类型,当将其作为mysql中的主键的时候,如果这些数据类型缺少明确的长度值,mysql无法保证主键的唯一性,因为这个主键是一个变量,其长度是动态的。所以当使用 TEXT/BLOB类型的数据作为索引的时候,数据的长度必须提供给mysql,使其能够明确键的长度。但是mysql不支持对TEXT/BLOB长度的限制。

解决方案

解决这个问题的方式之一是舍弃TEXT/BLOB列作为索引,或者设置另外的列作为主键。如果不得不设置成主键,而想限制TEXT/BLOB的长度,可以尝试使用VARCHAR并设置其长度。VARCHAR默认长度是255个字符,并且其长度必须在其声明之后在其括号中设置。

本站仅提供存储服务,所有内容均由用户发布,如发现有害或侵权内容,请点击举报
打开APP,阅读全文并永久保存 查看更多类似文章
猜你喜欢
类似文章
【热】打开小程序,算一算2024你的财运
mysql #1170错误(42000) BLOB/TEXT Column Used in Key Specification Without a Key Length
MySQL中TEXT与BLOB字段类型的区别
mysql 判断是否包含中文
MySQL数据库介绍
mysql的char,varchar,text,blob的几点个人理解
学习数据库MySQL,与SQLite数据库作对比
更多类似文章 >>
生活服务
热点新闻
分享 收藏 导长图 关注 下载文章
绑定账号成功
后续可登录账号畅享VIP特权!
如果VIP功能使用有故障,
可点击这里联系客服!

联系客服