【问题标题】:sqlalchemy, atomicity, and getting inserted idsqlalchemy、原子性和获取插入的 id
【发布时间】:2015-12-03 16:50:32
【问题描述】:

我需要这篇文章中关于如何获取新插入的数据库条目的 id 的答案: sqlalchemy flush() and get inserted id?

我想知道提交的原子性。例如,假设我已经向 db 提交了一个新项目,然后又取回了 id。我现在想做一些进一步的处理,也许将项目 id 作为外键添加到另一个表中。这破坏了原子性,因为我只想在完成此额外处理后才提交到数据库。这听起来不是个问题吗?我在我的项目中遇到了这个问题。

【问题讨论】:

    标签: sqlalchemy atomic


    【解决方案1】:

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2017-02-08
      • 1970-01-01
      • 2012-01-25
      • 1970-01-01
      • 1970-01-01
      • 2012-01-23
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多