sqlalchemy,原子性和插入ID

时间:2015-12-03 16:50:33

标签: sqlalchemy atomicity

我需要在本文中提供有关如何获取新插入的数据库条目的id的答案: sqlalchemy flush() and get inserted id?

我想知道提交的原子性。例如,假设我已经向数据库提交了一个新项目,然后将ID返回。我现在想做一些进一步的处理,并可能将项ID作为外键添加到另一个表。这打破了原子性,因为我只有在完成这个额外的处理后才想提交db。这不是一个问题吗?我在我的项目中遇到了这个问题。

1 个答案:

答案 0 :(得分:1)

.flush()不提交任何内容。 .flush()(以及后来的.rollback())的唯一影响是表的AUTO_INCREMENT增加(例如,如果最后提交的记录具有ID 13,然后是.add(),。flush()和.rollback()你的新记录,下一个插入的记录将收到ID 15而不是ID 14。