JOOQ 使用索引创建表
Posted
技术标签:
【中文标题】JOOQ 使用索引创建表【英文标题】:JOOQ Creating table with indices 【发布时间】:2022-01-01 11:11:03 【问题描述】:按照文档使用 JOOQ 创建表:
context.createTable("table")
.column("column1", INTEGER)
.column("column2", VARCHAR(10).nullable(false))
.constraints(
primaryKey("column1"),
unique("column2"),
foreignKey("column2").references("some_other_table"),
check(field(name("column2")).like("A%"))
)
.execute();
但是,似乎也可以在创建表时声明索引:
context.createTable("table")
.column("column1", INTEGER)
.column("column2", VARCHAR(10).nullable(false))
.constraints(
primaryKey("column1"),
unique("column2"),
foreignKey("column2").references("some_other_table"),
check(field(name("column2")).like("A%"))
)
.indexes(...indices)
.execute();
我在说明如何操作的文档中找不到任何内容。
以这种方式声明索引的正确方法是什么?
【问题讨论】:
【参考方案1】:jOOQ 3.15 尚不支持此特定语法: https://github.com/jOOQ/jOOQ/issues/9243
您可以通过各种方式自己实现它,例如:
使用plain SQL templating 使用execute listeners或者,您可以使用 jOOQ DSL API 运行两个单独的语句:
CREATE TABLE
CREATE INDEX
【讨论】:
以上是关于JOOQ 使用索引创建表的主要内容,如果未能解决你的问题,请参考以下文章