我在 SQLAlchemy 中遇到了一个简单的问题。我的表中有一个模型,我们在这里称它为 Model1。我想在这个表中添加一行,并获取自动增量键,所以我可以用它创建另一个模型,并使用这个键。这不是一个有缺陷的数据库设计(1:1 关系等)。我只需要另一个表中的这个密钥,因为另一个表正在传输到远程主机,我需要匹配的密钥,以便服务器能够相互理解。这两个表之间不会有进一步的本地引用,因此也无法创建关系。
考虑以下代码:
object1 = model.Model1(param)
DBSession.add(object1)
# if I do this, the line below fails with an UnboundExecutionError.
# and if I dont do this, object1.id won't be set yet
#transaction.commit()
object2 = model.AnotherModel(object1.id) #id holds the primary, autoincremented key
我希望我什至不必“手动”提交。基本上我想要实现的是,“Model1”不断增长,随着 Model.id 主键的增加。AnotherModel 始终只是尚未处理的 Model1 的一小部分。当然,我可以在“Model1”中添加一个标志,这是表中的一个布尔字段来标记已处理的元素,但我希望这不是必需的。
我怎样才能让我上面的代码工作?
问候,
汤姆