Error number: MY-013086; Symbol: ER_IB_MSG_1261; SQLSTATE: HY000
Message: %s
错误说明
ER_IB_MSG_1261错误,全称:Index column size too large. The maximum column size is 767 bytes. 这是MySQL的一个外部错误,当创建超过767字节的列索引时会出现此错误,是MySQL InnoDB(一种MySQL数据库引擎)所抛出的错误。
常见案例
当用户在数据库表中尝试建立太大的索引列(超过767B)时,就会出现ER_IB_MSG_1261错误。此错误可以细分为以下两种情况:
1.数据库引擎错误:当用户尝试在创建表时,定义超过767个字节的索引包含列时,会抛出ER_IB_MSG_1261错误。这是因为MySQL的InnoDB引擎的默认值的索引列的最大列长度为767。
2.编码错误:用户在MySQL中已存在的表上尝试创建索引时,如果索引包含更新版本的字符集,也会抛出ER_IB_MSG_1261错误。
解决方法
1.更改数据库引擎:当尝试在InnoDB引擎中创建大索引列时,应该更改表的引擎,比如改为MyISAM。MyISAM引擎允许用户定义比InnoDB引擎要大得多的索引管理列。
2.更改字符集:如果出现编码错误,可以尝试更改字符集,以便减少所需的索引列的大小。比如,从utf8改为utf8mb4就会减小索引列的长度,以便符合InnoDB引擎的默认最大限制。