导致MySQL最大密钥长度超出的Spring数据

时间:2018-06-21 06:14:24

标签: mysql spring-data-jpa eclipselink

我有以下代码段(由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的唯一约束

如果我是大脑衰弱的受害者,我们深表歉意!

1 个答案:

答案 0 :(得分:1)

  

错误1071(42000):指定的密钥太长;无法更改。最大密钥长度为767   字节

以上异常很明显,您已经达到了极限。

varchar(255)更改为255以下的值,例如varchar(191)