簡體   English   中英

添加mysql特定的ROW_FORMAT = DYNAMIC來創建由jooq生成的表語句

[英]Add mysql specific ROW_FORMAT=DYNAMIC to create table statement generated by jooq

我有一個應用程序,我需要向后移植到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();

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM