【问题标题】:jOOQ - INSERT INTO ... SELECT ... RETURNINGjOOQ - 插入 ... 选择 ... 返回
【发布时间】:2015-08-16 14:11:45
【问题描述】:

是否可以使用 jOOQ 创建 INSERT INTO ... SELECT ... RETURNING 语句?如果有,怎么做?

这里没有returning函数:

context.insertInto(table, list of fields).select(select statement).returning()

如果确实不存在,是否有可用的智能解决方法?我无法将我的INSERT INTO ... SELECT ... 表达为INSERT INTO ... VALUES ...。有关查询的更多详细信息,请参阅问题jOOQ - multi-field for insertion

【问题讨论】:

    标签: postgresql jooq


    【解决方案1】:

    INSERT 关键字的组合在 jOOQ 3.7 之前通过#3779 确实是不可能的。

    与此同时,一种解决方法是使用纯 SQL:

    Result<Record> result = context.fetch("{0} returning *", insertInto(...).select(...));
    

    【讨论】:

    • 嗨卢卡斯。这工作正常。但是,我怀疑我的org.jooq.Converter(在我的情况下从TimestampLocalDateTime)不再被这种方法调用。为此需要任何额外的解决方法吗? (我应该为此打开一个新问题吗?)
    • @KevinDeGrote:我明白了,不幸的是,除了深入了解 jOOQ 的内部结构之外,我目前没有看到任何解决方法。一种解决方法是为INSERT 语句形成一个CTE,但目前这不能用普通SQL 完成。 (github.com/jOOQ/jOOQ/issues/4474)。我们需要的是一种在实际执行之前在ResultQuery 上设置&lt;R&gt; 类型的方法。我已经为此注册了一个功能请求:github.com/jOOQ/jOOQ/issues/4473。感谢您的提醒!
    猜你喜欢
    • 2019-03-26
    • 1970-01-01
    • 1970-01-01
    • 2018-01-04
    • 2013-10-10
    • 2018-10-03
    • 1970-01-01
    • 1970-01-01
    • 2019-09-18
    相关资源
    最近更新 更多