gpt4 book ai didi

python - 在 SQLAlchemy 中查询 View

转载 作者:太空狗 更新时间:2023-10-30 00:47:01 25 4
gpt4 key购买 nike

我想知道 SQLAlchemy 在查询 View 时是否有问题。如果我在服务器上使用普通 SQL 查询 View ,例如:

SELECT * FROM ViewMyTable WHERE index1 = '608_56_56';

我得到了一大堆记录。但是使用 SQLAlchemy 我只得到第一个。但在计数是正确的数字。我不知道为什么。

这是我的 SQLAlchemy 代码。

myQuery = Session.query(ViewMyTable)
erg = myQuery.filter(ViewMyTable.index1 == index1.strip())

# Contains the correct number of all entries I found with that query.
totalCount = erg.count()
# Contains only the first entry I found with my query.
ergListe = erg.all()

最佳答案

如果您映射了 ViewMyTable,查询将只返回具有完全非 NULL 主键的行。此行为特定于 0.5 及更低版本 - 在 0.6 上,如果任何列在主键中具有非 NULL,则该行将变成一个实例。为您的映射器指定标志 allow_null_pks=True 以确保部分主键仍然有效:

mapper(ViewMyTable, myview, allow_null_pks=True)

如果 OTOH 返回的行的主键全部为空值,则 SQLAlchemy 无法创建实体,因为它无法将实体放入标识映射中。您可以通过专门查询来获取各个列:

for id, index in session.query(ViewMyTable.id, ViewMyTable.index):
print id, index

关于python - 在 SQLAlchemy 中查询 View ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2085592/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com