如何使用 JOOQ 创建模式?

How to create schema with JOOQ?

正在尝试使用 JOOQ 3 创建 Vertica table。5.x:

Connection connection = create();
DSLContext dslContext = DSL.using(connection);
Field<String> myColumn = DSL.field("my_column", SQLDataType.VARCHAR);
Table table = DSL.tableByName("my_schema", "my_table");
dslContext.createTable(table)
        .column(myColumn, myColumn.getDataType())
        .execute();

这在 Schema "my_schema" does not exist

上失败了

我可以用以下方法解决:

dslContext.execute("create schema if not exists my_schema");

但我想知道是否有更优雅的方法来使用 JOOQ 创建模式?

谢谢

目前,JOOQ 仅涵盖可针对服务器执行的可能 DDL 语句的一个子集,还未包括架构管理,因此您必须退回原计划 SQL。

如果您需要做大量的 DDL 工作,您应该开始查看最新版本 3.8,因为它扩展了包含

的功能
  • CREATE TABLE 或 ALTER TABLE 语句中的 DEFAULT 列值
  • 如果 DROP 语句中存在
  • 如果 CREATE 语句中不存在
  • 改变 TABLE .. { 重命名 |重命名列 |重命名约束 } 语句

添加了 3.6 版

  • ALTER TABLE 添加约束(使用 UNIQUE、PRIMARY KEY、FOREIGN KEY、CHECK)
  • 改变TABLE删除约束
  • 创建临时文件TABLE