【问题标题】:Globally add an order_by on sqlalchemy entities?在 sqlalchemy 实体上全局添加 order_by?
【发布时间】:2011-12-15 04:05:46
【问题描述】:

我们正在从 MySQL 迁移到 Postgresql,我们依赖的 MySQL 的主要特性之一是对象按照插入的顺序返回。在 Postgresql 中无法保证排序顺序,因此我们只想全局告诉我们的 SQLAlchemy 实体按 ID 排序。

我们希望避免更新我们拥有的每一个查询。如果我们可以创建 Entity 的子类或在全局范围内将其挂钩,那将是最好的。

【问题讨论】:

  • MySQL 也不能保证,这纯粹是运气,它也取决于查询和引擎。尝试一些 DELETE,而不是一些 INSERT,没有更多的排序输出。
  • 嗯,它在很大程度上对我们有用,所以全局排序 ID 将使我们更接近预期的行为。
  • 为了而依赖什么行为?也许有人可以建议一个简单的替代品。

标签: python mysql postgresql sqlalchemy


【解决方案1】:

默认情况下,它应该已经“按顺序”返回结果,除非您覆盖/修改了自动“id”列,如果不是,您可能需要摆弄您的映射器。

查看orm.mapper API,特别是 order_by 设置。这是在架构的某种元级别上完成的。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2012-10-09
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多