java - 如何使用 JOOQ 创建架构?

标签 java sql jooq

我正在尝试使用 JOOQ 创建一个 Vertica 表3.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();

架构“my_schema”不存在失败。

我可以解决它:

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

但是有没有更优雅的方法来使用 JOOQ 创建模式?

最佳答案

目前 JOOQ 仅涵盖可能的子集 DDL可以针对服务器执行的语句和架构管理尚未包括在内,因此您必须退回到计划旧 SQL。

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

  • CREATE TABLE 或 ALTER TABLE 语句中的 DEFAULT 列值
  • 如果在 DROP 语句中存在
  • 如果在 CREATE 语句中不存在
  • 更改表 .. { 重命名 |重命名列 | RENAME CONSTRAINT } 语句

添加了 3.6 版

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

关于java - 如何使用 JOOQ 创建架构?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37032604/

相关文章:

java - Android 应用程序混淆(Webserver-Pinging | 获取 + 保存数据 (MySQL))

java - 如何在 Java 中正确返回 ArrayList 的一部分?

java - Java中如何获取父类的属性?

java - 从父类(super class)或接口(interface)列表中获取子类实例

php - SQL 使用 PDO 获取单个标量

mysql - 如何在MySQL中进行动态限制?

sql - Access 更新到今天的日期

java - fetchLazy 在 jooq 中如何工作?

spring-boot - 使用生成的 JOOQ 代码针对多种数据库类型

java - 调用 JooQ DSLContext 的 .close() 时,连接何时关闭(如果有的话)?