使用 Slick for postgres 增加列值

Increment column value using Slick for postgres

我需要根据某些过滤器将 1 加到 postgres table 中记录的列值。假设我有两个字段 idcount 并且我想将计数值递增 1.

到目前为止我有

MyTable.filter(_.id === someId).map(_.count).update(??)

不确定如何使用 update 来做到这一点。有什么建议吗?

目前,Slick 不支持此功能 - https://github.com/slick/slick/issues/497。你可以:

  1. 使用简单的 SQL 查询;或者
  2. 在单独的查询中检索当前 "count" 值,递增,然后进行更新,使用 transactionally 修饰符强制使用一个事务。但是,根据数据库中的事务隔离级别,使用事务可能不足以避免竞争条件。