JOOQ 使用索引创建 table

JOOQ Creating table with indices

根据文档,使用 JOOQ 创建 table:

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();

但是,似乎也可以在 table 创建时声明索引:

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();

我在说明如何执行此操作的文档中找不到任何内容。

以这种方式声明索引的正确方法是什么?

jOOQ 3.15 尚不支持此特定语法: https://github.com/jOOQ/jOOQ/issues/9243

您可以通过多种方式自行实现,例如:

或者,您可以使用 jOOQ DSL 运行 两个单独的语句 API:

  • CREATE TABLE
  • CREATE INDEX