Spring数据导致超过MySQL最大密钥长度
我有以下代码段(由Spring Data/Eclipselink生成) 使用MySQL,结果如下:Spring数据导致超过MySQL最大密钥长度,mysql,spring-data-jpa,eclipselink,Mysql,Spring Data Jpa,Eclipselink,我有以下代码段(由Spring Data/Eclipselink生成) 使用MySQL,结果如下: ERROR 1071 (42000): Specified key was too long; max key length is 767 bytes 这是连接字符串: jdbc:mysql://localhost/mynewdb? useUnicode=true&useJDBCCompliantTimezoneShift=true&useLegacyDatetimeCode=f
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上的唯一约束,得到了相同的结果
如果我是大脑衰退的受害者,我道歉
错误1071(42000):指定的密钥太长;最大密钥长度为767
字节
上面的例外情况很清楚,你已经达到了极限
将
varchar(255)
更改为255以下的值,例如varchar(191)
使用varchar(191)
代替uuid字段?由于unicode?不,对于代码和描述,我认为这是由于将默认字符集更改为utf8mb4导致的吗?以及对唯一受限字段的更多存储的相应要求?也许你可以把它添加到一个答案中,我可以分配学分-谢谢!
jdbc:mysql://localhost/mynewdb?
useUnicode=true&useJDBCCompliantTimezoneShift=true&useLegacyDatetimeCode=false
&serverTimezone=UTC