我通过烧瓶SQLAlchemy使用更高级的SQLAlchemy ORM。我希望能够创建许多表,然后在单个事务中提交它们。但是,一个表与所有其他表相关,我不确定如何在它真正存在之前扩展它的ID。(请注意,它的主键是一个自动递增的值,在我们实际执行SQL之前,这个值才存在。)
例如,假设我们有TableA
和TableB
。TableB
有一个名为table_a_id
的列。TableA
ID由数据库管理;它会自动递增,直到我们创建一行TableA
时才会存在。在
我希望能够同时创建TableA
和TableB
,如果出现任何问题,请回滚事务。在
在一个神奇的完美世界里,我的代码看起来像:
try:
a = TableA()
b = TableB(table_a_id=a.id) # a.id is None, since nothing has happened yet.
db.session.commit()
except Exception:
db.session.rollback()
是否有可能(可能通过子事务)在事务中填充a.id
的值?在
我有两张桌子,一张是隐形的另一张是客户信息。在本例中,userInfoId是clientInfo表中的forign键。所以我首先保存userInfo,然后用userInfo id保存clientInfo
在这里我使用烧瓶,棉花糖,烧瓶棉花糖,棉花糖sqlalchemy,sqlalchemy,flask sqlalchemy。在
我就是这样做的
只需在创建}。在
a
对象之后使用session.flush()
,它将发出当前事务中所有挂起的SQL,将填充自动生成的id。稍后您可以根据需要commit()
或{相关问题 更多 >
编程相关推荐