经典问题,新框架——因此是问题。
PostgreSQL + Scala + ScalaQuery。我有带有串行(自动增量)ID 的主表和带有串行 ID 的从表。
我需要插入一个主记录和几个从属记录。我必须在事务中执行此操作(才能取消所有操作),因此在插入 master 以找出 id 后我无法运行查询。据我所见,SQ“插入”方法不返回对插入主记录的任何引用。
那么该怎么做呢?
SQ 示例涵盖了这一点,但是没有自动增量字段,因此这种解决方案(预设 ID)在这里不适用。
经典问题,新框架——因此是问题。
PostgreSQL + Scala + ScalaQuery。我有带有串行(自动增量)ID 的主表和带有串行 ID 的从表。
我需要插入一个主记录和几个从属记录。我必须在事务中执行此操作(才能取消所有操作),因此在插入 master 以找出 id 后我无法运行查询。据我所见,SQ“插入”方法不返回对插入主记录的任何引用。
那么该怎么做呢?
SQ 示例涵盖了这一点,但是没有自动增量字段,因此这种解决方案(预设 ID)在这里不适用。
如果我理解正确的话,目前这不可能以自动方式进行。如果一个人不害怕,可以这样做。获取最后插入的 id(每个主记录插入):
然后在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新手,我可能只是误导你。