我有一段代码问题,它以错误的格式生成(输出)而不是请求的形式:
我想用外键生成查询/ sql没有“ALTER TABLE NameOfTab ADD”所以我使用了这段代码:
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”部分。
你应该使用DSLContext.render(QueryPart)
而不是QueryPart.toString()
。 toString()
行为默认使用一些未指定的默认render()
调用Settings
,包括生成那些双引号标识符,我怀疑你不想拥有它。