gpt4 book ai didi

scala - 如何使用 Doobie 在插入语句中获得可选结果?

转载 作者:行者123 更新时间:2023-12-04 10:36:56 30 4
gpt4 key购买 nike

我有一个可选的插入查询:

val q = sql"insert into some_table (some_field) select 42 where ...(some condition)"

使用以下命令运行此查询:
q.update.withUniqueGeneratedKeys[Option[Long]]("id")

失败

Result set exhausted: more rows expected



然后 condition是假的。

获取方式 Optional[Long]来自 Doobie 的插入语句的结果?

UPD
.withGeneratedKeys[Long]("id")只给 Long为了理解
val q = sql"insert into some_table (some_field) select 42 where ...(some condition)"
for {
id <- q.update.withGeneratedKeys[Long]("id") // id is long
_ <- if (<id is present>) <some other inserts> else <nothing>
} yield id

如何查询 id ?

最佳答案

正如@Thilo 所评论的,您可以使用 withGeneratedKeys这会给你一个 Stream[F, Long] (其中 F 是您的效果类型)

val result = q.update.withGeneratedKeys[Long]("id")

这是 doc .

关于scala - 如何使用 Doobie 在插入语句中获得可选结果?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56342218/

30 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com