我正在尝试使用 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/