Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/69.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Spring数据导致超过MySQL最大密钥长度_Mysql_Spring Data Jpa_Eclipselink - Fatal编程技术网

Spring数据导致超过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

我有以下代码段(由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=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