在PostgreSQL中,可以对INSERT
子句进行WITH
查询:
with a as (
insert into table(...) values(...) returning *
)
select a.*
from a
jOOQ是否支持此功能?似乎只支持WITH
+ SELECT
?
更新
类WithAsStep
仅支持select,但类WithStep
似乎支持所有查询。 context.with(CommonTableExpression<?>...)
(返回WithStep
)构造如何工作?我在文档中找不到任何有用的东西。
答案 0 :(得分:1)
目前,jOOQ 3.6无法实现这一点,因为INSERT .. RETURNING
返回的类型不是Select<?>
的子类型,需要将其置于jOOQ的WithAsStep.as()
方法中。功能请求#4474可以增强WithAsStep.as()
接受ResultQuery
,但INSERT .. RETURNING
语句首先需要实现此功能。
我担心,这没有简单的解决方法。此外,在jOOQ 3.6中,尚不支持带有DML(DELETE
,UPDATE
,INSERT
)的CTE。相关功能请求为#3174