jOOQ具有CREATE TABLE语法,如in the documentation所述:
create.createTable(AUTHOR)
.column(AUTHOR.ID, SQLDataType.INTEGER)
.column(AUTHOR.FIRST_NAME, SQLDataType.VARCHAR.length(50))
.column(AUTHOR_LAST_NAME, SQLDataType.VARCHAR.length(50))
.execute();
我想知道如何定义哪个列属于主键?那么在jOOQ中有一种方法可以使用PRIMARY KEY信息创建一个CREATE TABLE语句吗?
我对SQLite的解决方案特别感兴趣,后者没有添加主键的语法,所以我认为在最坏的情况下我必须转到特定于数据库的解决方案?
答案 0 :(得分:5)
此功能已针对jOOQ 3.8实施:#4050。
create.createTable(AUTHOR)
.column(AUTHOR.ID, SQLDataType.INTEGER)
.column(AUTHOR.FIRST_NAME, SQLDataType.VARCHAR.length(50))
.column(AUTHOR_LAST_NAME, SQLDataType.VARCHAR.length(50))
.constraints(
constraint("PK_AUTHOR").primaryKey(AUTHOR.ID)
)
.execute();
从jOOQ 3.6(#3338)开始,您还可以在创建表后使用ALTER TABLE
语句添加约束:
create.alterTable(AUTHOR)
.add(constraint("PK_AUTHOR").primaryKey(AUTHOR.ID))
.execute();