1

经典问题,新框架——因此是问题。

PostgreSQL + Scala + ScalaQuery。我有带有串行(自动增量)ID 的主表和带有串行 ID 的从表。

我需要插入一个主记录和几个从属记录。我必须在事务中执行此操作(才能取消所有操作),因此在插入 master 以找出 id 后我无法运行查询。据我所见,SQ“插入”方法不返回对插入主记录的任何引用。

那么该怎么做呢?

SQ 示例涵盖了这一点,但是没有自动增量字段,因此这种解决方案(预设 ID)在这里不适用。

4

1 回答 1

0

如果我理解正确的话,目前这不可能以自动方式进行。如果一个人不害怕,可以这样做。获取最后插入的 id(每个主记录插入):

最后插入的 ID 的 postgreSQL 函数

然后在SQ中使用它:

http://groups.google.com/group/scalaquery/browse_thread/thread/faa7d3e5842da82e

此代码显示了 MySql 方式。为了后代,我将其发布到列表中。

val scopeIdentity = SimpleFunction.nullaryLong

val 插入 = Actions.insert(“猫”、“吃”、“狗”)

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

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

//问候 //布莱恩

但是由于对于自动递增的字段,您必须使用不包括 autoinc 字段的投影,然后插入元组而不是命名记录类型,因此存在一个问题,在 SQ 直接支持这一点之前是否不值得屏住呼吸。

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

于 2011-11-29T17:00:11.140 回答