2011-11-27 66 views
1

经典问题,新框架 - 因此问题。如何使用ScalaQuery插入自动增加的主/从记录?

PostgreSQL + Scala + ScalaQuery。我有主表与串行(自动增量)ID和从表也与序列号。

我需要插入一个主记录和多个从站。我必须在事务内部做到这一点(有能力取消所有),所以我插入主要找到id后,我不能运行一个查询。据我看到SQ“插入”方法不返回任何引用插入的主记录。

那么该怎么办呢?

SQ示例涵盖了这一点,但没有自动增加字段,所以此类解决方案(预先设置的ID)在此不适用。

回答

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插入= Actions.insert( “猫”, “吃”,“狗)

//打印出的插入记录的计数。的println(插入)

//打印出最后插入的记录的主键。 的println(查询(scopeIdentity)。首先)

// //问候布莱恩

但是,由于对于自动递增的字段,您必须使用除autoinc字段之外的投影,然后插入元组而不是指定记录类型,否则存在一个问题,如果它不值得屏住呼吸,SQ才会直接支持。

注意我是SQ新手,我可能会误导你。

相关问题