gpt4 book ai didi

postgresql - 查询由 SQLAcodegen 创建的 PostgreSQL View

转载 作者:行者123 更新时间:2023-11-29 13:24:55 27 4
gpt4 key购买 nike

我有一个有用的 PostgreSQL View ,由 JOIN 查询生成:

\d very_useful_view;
View "public.very_useful_view"
Column | Type | Modifiers
-------------+-------------+-----------
tree_id | dom_treeid |
title | text |
grass_id | dom_grass |
name | text |
street_uuid | uuid |

View 由 SQLAcodegen 建模到以下对象:

t_very_useful_view = Table(
'very_useful_view', metadata,
Column('tree_id', String),
Column('title', Text),
Column('grass_id', Text),
Column('name', Text),
Column('street_uuid', UUID)
)

正常查询按预期工作:

print session.query(t_very_useful_view).all()

但是,过滤——

print session.query(t_very_useful_view).\
filter(t_very_useful_view.tree_id == some_tree_id).\
all()

加注:

AttributeError: 'Table' object has no attribute 'tree_id'

知道我在 View 映射中遗漏了什么吗?

最佳答案

Table 对象的列 should be accessed with the columns property :

print session.query(t_very_useful_view).\
filter(t_very_useful_view.columns.tree_id == some_tree_id).\
all()

这与 declarative_base() 的子类形成对比,后者将列公开为根级对象属性。

关于postgresql - 查询由 SQLAcodegen 创建的 PostgreSQL View ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35576713/

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