【问题标题】:sql alchemy scalar query issue?sqlalchemy 标量查询问题?
【发布时间】:2012-12-27 23:29:46
【问题描述】:

这个查询有什么问题。

self.connection.execute(select([func.count(table.c.id)]).as_scalar())

这给我这个回溯

StatementError: Not an executable clause (original cause: ArgumentError: 
     Not an executable clause) '(SELECT count(table.id) AS count_1 \nFROM agent)'

或者如何使用 SqlAlchemy Core

获取表中所有行的数量

【问题讨论】:

    标签: python orm sqlalchemy


    【解决方案1】:

    不确定为什么需要使用 .as_scalar() 方法。此方法旨在用于创建子查询对象。而子查询对象是用来构建另一个查询的,不能直接执行。

    从您的代码看来,您正在构建要执行的选择查询:

    在这种情况下,以下代码就足够了:

    self.connection.execute(select([func.count(table.c.id)]))
    

    以下代码正常工作:

    r = engine.execute(select([func.count(table.c.id)]))
    print r
    for i in r:
        print i
    

    结果:

    <sqlalchemy.engine.base.ResultProxy object at 0x032F4E30>
    (1,)
    

    PS: 从 sqlalchemy 文档中: The Query Object: as_scalar

    as_scalar()

    返回由 this 表示的完整 SELECT 语句 查询,转换为标量子查询。

    【讨论】:

      猜你喜欢
      • 2011-09-23
      • 2015-07-30
      • 2020-12-22
      • 2011-06-21
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多