【发布时间】:2017-03-02 18:31:48
【问题描述】:
在我的用例中,我有一个 createdDate 字段,如果记录已经存在,我想保留它。
case class Record(id:Long, value:String, createdDate:DateTime, updateDate:DateTime)
是否可以使用 TableQuery.insertOrUpdate(record) 以便在记录已经存在的情况下只更新记录的一部分?
就我而言,我只想更改 value 和 updateDate 字段。在存储过程中使用纯 SQL,我会执行以下操作:
merge Record r
using (
select @id,
@value
) as source (
id,
value
)
on r.id = source.id
when matched then
update set value = source.value, updateDate = getDate()
when not matched then
insert (id, value, createdDate, updatedDate) values
(id, value, getDate(), getDate()
【问题讨论】:
-
你有没有找到解决这个问题的办法?我遇到了同样的问题,到目前为止我看到的唯一解决方法是不使用
insertOrUpdate并切换到编写我自己的 upsert 逻辑。