【发布时间】:2020-08-05 00:27:39
【问题描述】:
让我们假设一个超级简单的用例: 想象一下,我有一个包含这些列的表 (dummyTable):
id
dueAt
createdAt
如何使用 jOOQ 执行如下批量更新
update dummyTable
set dueAt = TIMESTAMPADD(MINUTE, 5, createdAt)
where ids in (...)
我在网上看到使用硬编码和提供的值的示例 - https://www.jooq.org/doc/3.13/manual/sql-building/column-expressions/datetime-functions/timestampadd-function/。但我不知道如何让 TIMESTAMPADD 函数与现有的列值一起工作。
我应该在空白处写什么?
return rwContext
.update(DUMMYTABLE)
.set(DUMMYTABLE.DUEAT, ______________ )
.where(DUMMYTABLE.ID.in(someIds))
.execute();
我在空白处尝试了下面的代码,但它给出了编译错误
timestampAdd(Timestamp.valueOf(DUMMYTABLE.CREATEDAT), 5, DatePart.MINUTE)
感谢任何帮助或指导。
【问题讨论】:
-
尝试在带有 SQLDataType.TIMESTAMP 的 CREATEDAT 上使用 cast 方法。