MySQL【问题 02】报错 1709 - Index column size too large. The maximum column size is 767 bytes. 可能是最简单的方法

墨蓝 2023-10-04 01:55 89阅读 0赞

1.问题重现

  1. CREATE TABLE `xxl_job_registry` (
  2. `id` int(11) NOT NULL AUTO_INCREMENT,
  3. `registry_group` varchar(50) NOT NULL,
  4. `registry_key` varchar(255) NOT NULL,
  5. `registry_value` varchar(255) NOT NULL,
  6. `update_time` datetime DEFAULT NULL,
  7. PRIMARY KEY (`id`),
  8. KEY `i_g_k_v` (`registry_group`,`registry_key`,`registry_value`,`update_time`)
  9. ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4
  10. > 1709 - Index column size too large. The maximum column size is 767 bytes.
  11. > 时间: 0.009s

修改了KEY的值,使用id是可以的,说明是真的超出了长度。

2.解决方法

将 CHARSET=utf8mb4 改为 CHARSET=gbk 解决了这个问题,但不知道有没有意外的惊喜。

  1. CREATE TABLE `xxl_job_registry` (
  2. `id` int(11) NOT NULL AUTO_INCREMENT,
  3. `registry_group` varchar(50) NOT NULL,
  4. `registry_key` varchar(255) NOT NULL,
  5. `registry_value` varchar(255) NOT NULL,
  6. `update_time` datetime DEFAULT NULL,
  7. PRIMARY KEY (`id`),
  8. KEY `i_g_k_v` (`registry_group`,`registry_key`,`registry_value`,`update_time`)
  9. ) ENGINE=InnoDB DEFAULT CHARSET=gbk
  10. > OK
  11. > 时间: 0.009s

发表评论

表情:
评论列表 (有 0 条评论,89人围观)

还没有评论,来说两句吧...

相关阅读