使用 jOOQ 使用主键创建 table
Create table with primary key using jOOQ
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 的解决方案特别感兴趣,它没有随后添加主键的语法,所以我认为在最坏的情况下我必须使用特定于数据库的解决方案?
已为 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) 开始,您还可以在创建 table:
之后使用 ALTER TABLE
语句添加约束
create.alterTable(AUTHOR)
.add(constraint("PK_AUTHOR").primaryKey(AUTHOR.ID))
.execute();
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 的解决方案特别感兴趣,它没有随后添加主键的语法,所以我认为在最坏的情况下我必须使用特定于数据库的解决方案?
已为 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) 开始,您还可以在创建 table:
之后使用ALTER TABLE
语句添加约束
create.alterTable(AUTHOR)
.add(constraint("PK_AUTHOR").primaryKey(AUTHOR.ID))
.execute();