我有一个应用程序需要向后移植到 mysql 5.6。
此应用程序使用相当大的复合键,这在 mysql 5.7 上运行良好,因为默认情况下启用了 innodb-large-prefix。
我可以将 mysql 5.6 配置为使用 innodb-large-prefix,但它还需要使用 ROW_FORMAT=DYNAMIC
或 COMPRESSED
创建表。
这是我想使用 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/