是否有可能以某种方式更新冲突中的多个值?比如像这样:
val a = quote {
query[Product]
.insert(_.id -> 1, _.sku -> 10)
.onConflictUpdate((t, e) => t.sku -> (t.sku + e.sku), t.abc -> e.abc)
}
我像上面那样尝试过,当我有两个值时,总是得到“未找到:值 t”错误。该文档也没有回答这个方向的问题。
是的,您可以在插入冲突时更新多个值。为此,只需提供多个带有映射的 lambda,如下所示
val q = quote {
query[Product]
.insert(lift(product))
.onConflictUpdate(
(t, e) => t.sku -> (t.sku + e.sku),
(t, e) => t.abc -> e.abc)
}
这将为 MySQL 生成以下 SQL:
INSERT INTO product (id,sku,abc) VALUES (?, ?, ?)
ON DUPLICATE KEY UPDATE sku = (sku + VALUES(sku)), abc = VALUES(abc)