java - 加入mysql特有的ROW_FORMAT=DYNAMIC jooq生成的建表语句

标签 java mysql jooq mysql-5.6

我有一个应用程序需要向后移植到 mysql 5.6。

此应用程序使用相当大的复合键,这在 mysql 5.7 上运行良好,因为默认情况下启用了 innodb-large-prefix。

我可以将 mysql 5.6 配置为使用 innodb-large-prefix,但它还需要使用 ROW_FORMAT=DYNAMICCOMPRESSED 创建表。

这是我想使用 jooq 实现的 SQL 示例:

CREATE TABLE `domain` (
  `path` varchar(300) NOT NULL,
  UNIQUE KEY `index1` (`path`)
) ROW_FORMAT=DYNAMIC;

这些是供引用的mysql 5.6文档:

https://dev.mysql.com/doc/refman/5.6/en/innodb-restrictions.html https://dev.mysql.com/doc/refman/5.6/en/innodb-row-format.html https://dev.mysql.com/doc/refman/5.6/en/innodb-parameters.html#sysvar_innodb_large_prefix

最佳答案

您可以使用 CreateTableStorageStep.storage() 将自定义存储子句添加到 CREATE TABLE 语句中方法。例如

ctx.createTable("domain")
   .column("path", VARCHAR(300).nullable(false))
   .constraint(constraint("index1").unique("path"))
   .storage("ROW_FORMAT=DYNAMIC")
   .execute();

关于java - 加入mysql特有的ROW_FORMAT=DYNAMIC jooq生成的建表语句,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55125108/

相关文章:

java - 无法恢复快照 - 在 elasticsearch 中找不到 IndexShardRestoreFailedException 文件

java - Android Studio 0.8.14 和 64 位 JDK

java - 在调用 removeCallbacks() 时,在新线程上启动的可运行对象不会停止

mysql - 我如何设置 mySQL Workbench 的样式

php - 了解 php 成员(member)系统中的错误

java - spring JDBC 中的 Bad Sql Grammar Exception

java - 链接生成的 Jooq 类时如何解决歧义匹配

java - 扩展的 JPanel 破坏了 GridLayout

java - 缩减规模/自定义 jOOQ 构建?

使用 JOOQ 生成器的 Playframework Evolutions