经典问题,新框架 - 因此问题。
PostgreSQL + Scala + ScalaQuery。我有Master表和serial(自动增量)id和Slave表也有序列号。
我需要插入一个主记录和几个从站。我必须在事务中执行它(能够取消所有),所以在插入master以查找id之后我无法运行查询。据我所知,SQ"插入" method不会返回对插入的主记录的任何引用。
那怎么办?
SQ示例涵盖了此但没有自动增量字段,因此此类解决方案(预设ID)不适用于此处。
答案 0 :(得分:0)
如果我理解正确,那么现在无法以自动方式实现。如果一个人不害怕,可以这样做。获取最后一次插入的id(每个主记录插入):
postgreSQL function for last inserted ID
然后在SQ中使用它:
http://groups.google.com/group/scalaquery/browse_thread/thread/faa7d3e5842da82e
此代码显示MySql方式。我将它发布到列表中 后人的缘故。
val scopeIdentity = SimpleFunction.nullaryLong
val inserted = Actions.insert( “猫”,“吃”,“狗”
//打印出插入记录的数量。 println(已插入)
//打印出最后插入记录的主键。 的println(查询(scopeIdentity)。首先)
//问候//布莱恩
但是因为对于自动递增的字段,你必须使用不包括autoinc字段的投影,然后插入元组而不是命名记录类型,有一个问题是否值得屏住呼吸,直到SQ直接支持这个。
注意我是SQ新手,我可能会误导你。