【问题标题】:SQLAlchemy doesn't recognize new entries in querySQLAlchemy 无法识别查询中的新条目
【发布时间】:2020-06-29 20:23:37
【问题描述】:

我正在从这样的表中查询最新条目:

data = dbsession.query(db.mytable).order_by(db.mytable.timestamp.desc()).with_entities(db.mytable.timestamp).first()

在启动时这很好,但如果在运行时由同一个 dbsession 添加新的 etries,则上面的查询无法识别它们。 但是以下没有 SQLAlchemy 的代码按预期工作:

sql_query="SELECT timestamp FROM mytable ORDER BY timestamp DESC LIMIT 1"
data = cursor.execute(sql_query)

如何让 SQLAlchemy 在这种情况下工作?

【问题讨论】:

    标签: python sqlalchemy


    【解决方案1】:

    曾经遇到过类似的问题,不记得为什么 sqlAlchemy 会有这种行为,您需要在选择之前提交会话以刷新数据:

    session.commit()
    

    【讨论】:

    • 我在添加新条目后进行提交。你知道为什么我必须在新查询之前再次这样做吗?
    • 不是为什么 SQLAlchemy 会这样,而是为什么 SQL 会这样工作:en.m.wikipedia.org/wiki/Isolation_(database_systems)。提出 SQLA 会话,因为它们(几乎)总是事务性的,而不是启用某种形式的自动提交。
    猜你喜欢
    • 1970-01-01
    • 2020-08-29
    • 2020-09-08
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-10-14
    • 1970-01-01
    相关资源
    最近更新 更多