使用 Slick for postgres 增加列值
Increment column value using Slick for postgres
我需要根据某些过滤器将 1 加到 postgres table 中记录的列值。假设我有两个字段 id
和 count
并且我想将计数值递增 1.
到目前为止我有
MyTable.filter(_.id === someId).map(_.count).update(??)
不确定如何使用 update
来做到这一点。有什么建议吗?
目前,Slick 不支持此功能 - https://github.com/slick/slick/issues/497。你可以:
- 使用简单的 SQL 查询;或者
- 在单独的查询中检索当前 "count" 值,递增,然后进行更新,使用 transactionally 修饰符强制使用一个事务。但是,根据数据库中的事务隔离级别,使用事务可能不足以避免竞争条件。
我需要根据某些过滤器将 1 加到 postgres table 中记录的列值。假设我有两个字段 id
和 count
并且我想将计数值递增 1.
到目前为止我有
MyTable.filter(_.id === someId).map(_.count).update(??)
不确定如何使用 update
来做到这一点。有什么建议吗?
目前,Slick 不支持此功能 - https://github.com/slick/slick/issues/497。你可以:
- 使用简单的 SQL 查询;或者
- 在单独的查询中检索当前 "count" 值,递增,然后进行更新,使用 transactionally 修饰符强制使用一个事务。但是,根据数据库中的事务隔离级别,使用事务可能不足以避免竞争条件。