如何在 Jooq 中编写非返回 postgresql CTE

问题描述 投票:0回答:1

在Jooq中,我可以使用

DSL#name(...)
方法来编写CTE,包括具有
RETURNING
子句的INSERT / UPDATE / DELETE查询

例如

name("my_cte").as(
    update(MY_TABLE)
        // ...
    .returning(MY_TABLE.ID)
)

但是如果我删除

.returning(...)
部分

,我会在编译时遇到类型不匹配的问题

有办法解决吗?

postgresql common-table-expression jooq
1个回答
0
投票

这在 jOOQ 中是不可能的。您必须提供

RETURNING
子句才能使 DML 语句在 CTE 中可用。您可以尝试为此创建功能请求,但我认为这不会被优先考虑。与更简洁的方法相比,这种方法的实用性似乎可以忽略不计,在该方法中,您可以使用存储过程来完成同样的事情,无论是用本机 PL/pgSQL 编写还是使用 jOOQ 的过程语言支持

© www.soinside.com 2019 - 2024. All rights reserved.