如何使用ScalaQuery插入自动增量的主/从记录?

时间:2011-11-27 17:56:03

标签: scala transactions insert scalaquery

经典问题,新框架 - 因此问题。

PostgreSQL + Scala + ScalaQuery。我有Master表和serial(自动增量)id和Slave表也有序列号。

我需要插入一个主记录和几个从站。我必须在事务中执行它(能够取消所有),所以在插入master以查找id之后我无法运行查询。据我所知,SQ"插入" method不会返回对插入的主记录的任何引用。

那怎么办?

SQ示例涵盖了此但没有自动增量字段,因此此类解决方案(预设ID)不适用于此处。

1 个答案:

答案 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新手,我可能会误导你。