类似于here我正在用
注释我的类(class)@Table(indexes = {@Index(columnList = "name")})
它试图创建一个具有 varchar
列最大长度的非唯一索引。不幸的是,这是不可能的,因为它是 utf8mb4
类型的 varchar(255)
列。 phpMyAdmin 通过单击 UI 中的相应按钮添加了 KEY '...' (name(191))
,因此至少我的软件现在运行高效查询。
现在我想知道是否可以让我的 Java 类在创建数据库模式时自动生成长度有限的索引?该代码基于 spring-boot-starter-data-jpa:1.4.2.RELEASE
。
最佳答案
除了尝试让第 3 方软件做一些它可能允许或不允许的事情之外,还有其他答案。
- 忍受 191 列大小的限制。或者,您真的有 191 到 255 之间的最大值吗?
- 更改为 utf8(从 utf8mb4)。并失去存储表情符号和一些汉字的能力。
- 5.6 中有一个笨拙的过程来提高您遇到的 767 限制。
- 升级到 5.7,这几乎消除了问题。
关于java - 如何使用 JPA 以编程方式创建长度有限的 MySQL 索引?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42365149/