我对一段代码有问题,该代码以错误的格式生成(输出),并且没有被请求的形式:
我想使用不带“ ALTER TABLE NameOfTab ADD”的外键生成查询/ sql,所以我使用了这段代码:
DSL.constraint(DSL.name("fk_example"))
.foreignKey("id1","id2")
.references("referecnedTableName", "referencedColumn1", "referencedColumn2");
这是一个问题,因为它以字符串形式返回:
constraint "fk_example"
foreign key (
"id1",
"id2"
)
references "referecnedTableName" (
"referencedColumn1",
"referencedColumn2"
)
预期结果是:
constraint fk_example foreign key (id1, id2)
references referecnedTableName (referencedColumn1, referencedColumn2)
ALTER表使用正确格式的类似内容
ctx.alterTable(tableName)
.add(
DSL.constraint(DSL.name("fk_example"))
.foreignKey("id1","id2")
.references("referecnedTableName","referencedColumn1","referencedColumn2"))
.getSQL(ParamType.INLINED));
但是它返回“ alter table t3 add ...”,但我不希望“ alter table”部分。
答案 0 :(得分:1)
您应该使用DSLContext.render(QueryPart)
而不是QueryPart.toString()
。 toString()
的行为默认情况下是使用一些未指定的默认render()
来调用Settings
,其中包括生成那些双引号的标识符,我怀疑您不想这样做。