根据列计算更新值

时间:2013-10-05 23:08:55

标签: scala slick

Slick可以生成一个SQL语句,执行更新,根据另一列更新列吗?我希望实现这样的目标:

UPDATE table SET col1 = (col2 + 5) WHERE col3 = "Foo"

我查看了Query.mutate(),但我的理解是计算将在客户端执行(而不是在数据库服务器上)。

我希望它是这样的:

Query(table).updateV2 { r => (r.col1 -> r.col2 + 5) } 

无论如何在Slick中实现这一点而不编写原始查询?

1 个答案:

答案 0 :(得分:1)

目前,typesafe API不支持。我们将在未来的某个时间添加一张票。

https://www.assembla.com/spaces/typesafe-slick/tickets/298-mutating-updates--update-foo-set-a-a+123

现在,您可以使用具有选择和后续更新的事务。或者简单的SQL。