gpt4 book ai didi

scala - 如何获取刚刚由 ScalaQuery 插入的自增 ID

转载 作者:行者123 更新时间:2023-12-01 09:47:15 26 4
gpt4 key购买 nike

我正在使用 ScalaQuery 访问 PostgreSql。 Data 是一个表,它有一个名为 id 的自动增量主键,定义为 def id = column[Long] ("id", O NotNull, O PrimaryKey, O AutoInc,O DBType“串行”)。我使用 Data.insert(name, filename) 创建一个新的 Data 记录。有没有办法获取刚刚创建的记录的 idinsert 方法只返回一个由 executeUpdate 返回的 Int 值。

最佳答案

ScalaQuery 不支持开箱即用的序列 ID,您需要先定义一个辅助方法:

val seqID = SimpleFunction.nullary[Int]("LASTVAL")

然后,在范围内使用上述助手,执行您的插入:

db withSession {
val q = Foo.insert(someInstance)
val id = Query(seqID) // call sequence helper
}

关于线程安全的评论,请引用:
https://stackoverflow.com/a/2944481/185840

和:
https://github.com/szeiger/scala-query/issues/10#issuecomment-698418

关于scala - 如何获取刚刚由 ScalaQuery 插入的自增 ID,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10297246/

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