如何使用 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
正在尝试使用 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