[英]JOOQ - How to create primary key
您不知道如何在JOOQ(Java)中创建主键吗? 我需要的只是获取正确的创建表字符串。 我还没有这段代码(使用SQLDialect.MYSQL):
public void createTable(String tableName, Map<String, DataType> columns){
this.tableName = tableName;
table = ctx.createTable(tableName).column("id", INTEGER.identity(true));
System.out.println(table.getSQL() + ";");
}
输出(来自字符串生成器):
create table `filetest`(`id` int not null auto_increment);
我需要设置主键以获得正确的输出:
create table `filetest`(`id` int not null auto_increment, primary key ('id'));
没有execute()是否可能? 因为我只需要它作为字符串,所以我只想再次使用getSQL()命令...
我发现了以下内容:DSL.primaryKey(“ id”);
但是我无法将它与休息联系起来。 这意味着当我调用getSQL()时,它不存在,我可以在方法末尾将其系统化,但是它不会在其余的CREATE sql里面...我希望您理解我想说的话。
感谢您的帮助。
您可以使用jooq将约束添加到create语句 。
例如:
DSLContext ctx;
String createTableSql = ctx.createTable("TABLE_NAME")
.column("TABLE_ID", SQLDataType.BIGINT.identity(true))
.column("COL_1", SQLDataType.VARCHAR(64).nullable(false))
.constraints(
DSL.constraint("PK_TABLE").primaryKey("TABLE_ID"),
DSL.constraint("UNIQUE_COL_1").unique("COL_1")
).getSQL();
System.out.println(createTableSql);
将创建以下语句:
create table `TABLE_NAME`(
`TABLE_ID` bigint not null auto_increment,
`COL_1` varchar(64) not null,
constraint `PK_TABLE` primary key (`TABLE_ID`),
constraint `UNIQUE_COL_1` unique (`COL_1`)
)
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.