Spring 数据导致超过 MySQL 最大密钥长度
Spring data causing MySQL max key length exceeded
我有以下代码段(由 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 的唯一约束,结果相同
如果我是大脑衰退的受害者,我深表歉意!
ERROR 1071 (42000): Specified key was too long; max key length is 767
bytes
上面的异常已经很清楚了,你已经达到极限了。
将 varchar(255)
更改为低于 255 的值,例如 varchar(191)
我有以下代码段(由 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 的唯一约束,结果相同
如果我是大脑衰退的受害者,我深表歉意!
ERROR 1071 (42000): Specified key was too long; max key length is 767 bytes
上面的异常已经很清楚了,你已经达到极限了。
将 varchar(255)
更改为低于 255 的值,例如 varchar(191)