2

Slick 能否生成一个 SQL 语句来执行基于另一列更新一列的更新?我想实现这样的目标:

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

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

我希望它是这样的:

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

无论如何,在不编写原始查询的情况下在 Slick 中实现这一点吗?

4

1 回答 1

1

当前不支持类型安全 API。我们有一张票可以在将来的某个时间添加它。

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

现在,您可以使用带有选择和后续更新的事务。或纯 SQL。

于 2013-10-06T08:13:32.017 回答