奇怪的问题,多年来我一直在本地 mysql 上创建数据库表,而我刚刚收到一条错误消息:
指定的 key 太长;最大 key 长度为 767 字节
错误的列如下:
`referenceperiod` VARCHAR(300) NULL
注意长度为 300,这是我上次检查时小于 767 的长度。我在该列上有一个索引,如果删除该索引,则可以构建表:
INDEX `idx_referenceperiod` (referenceperiod),
奇怪的是,这不是我第一次构建这个精确的表 - 那么为什么它现在突然失败了...
最佳答案
如果你有一个 UTF8 排序规则,MySQL 为每个字符保留 3 个字节,在这种情况下,键总共变为 900 个字节。
900比767多,上次查的。 ;)
关于MySql 最大 key 太长, key 小于 767,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28746880/