spring数据导致超过mysql最大密钥长度

vcudknz3  于 2021-06-20  发布在  Mysql
关注(0)|答案(1)|浏览(267)

我有以下代码段(由spring data/eclipselink生成)

CREATE TABLE abnormal_flags (ID BIGINT NOT NULL, code VARCHAR(255) NOT NULL 
UNIQUE, created DATETIME NOT NULL, description VARCHAR(255) NOT NULL, uuid 
LONGBLOB NOT NULL UNIQUE, PRIMARY KEY (ID));

mysql的结果如下:

ERROR 1071 (42000): Specified key was too long; max key length is 767 bytes

这是连接字符串:

jdbc:mysql://localhost/mynewdb?
useUnicode=true&useJDBCCompliantTimezoneShift=true&useLegacyDatetimeCode=false
&serverTimezone=UTC

我已经看到并解决了这个问题,但在这种情况下,我不能看到问题在哪里?是因为uuid已转换为longblob吗?我不明白为什么这会是一个问题,因为它不是一个关键?
我删除了uuid上的唯一约束,得到了相同的结果
抱歉,如果我是大脑衰退的受害者!

fae0ux8s

fae0ux8s1#

错误1071(42000):指定的密钥太长;最大密钥长度为767字节
上面的例外很明显,你已经达到极限了。
改变 varchar(255) 低于255的某物,如 varchar(191)

相关问题