MySQL[Specified key was too long; max key length is 767 bytes]

MySQL Version: 5.5.27

// Specified key was too long; max key length is 767 bytes

CREATE TABLE QRTZ_JOB_DETAILS
  (
    SCHED_NAME VARCHAR(120) NOT NULL,
    JOB_NAME  VARCHAR(200) NOT NULL,
    JOB_GROUP VARCHAR(200) NOT NULL,
    DESCRIPTION VARCHAR(250) NULL,
    JOB_CLASS_NAME   VARCHAR(250) NOT NULL,
    IS_DURABLE VARCHAR(1) NOT NULL,
    IS_NONCONCURRENT VARCHAR(1) NOT NULL,
    IS_UPDATE_DATA VARCHAR(1) NOT NULL,
    REQUESTS_RECOVERY VARCHAR(1) NOT NULL,
    JOB_DATA BLOB NULL,
    PRIMARY KEY (SCHED_NAME,JOB_NAME,JOB_GROUP)
)
# 错误是因为utf8字节的计算方式,每个字符占3字节。 120 * 200 * 200 * 3。所以报错
# 解决方式
# 首先要保证数据库引擎是使用 innodb. 
show global variables like "innodb_large_prefix";
show global variables like "innodb_file_per_table";
show variables like 'innodb_file_format';

SET GLOBAL innodb_large_prefix = on;
SET GLOBAL innodb_file_per_table = on;
SET GLOBAL innodb_file_format = BARRACUDA;

# 在创建语句后加 row_format = dynamic
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

友情链接更多精彩内容