Psycopg2 或 SQLAlchemy 中的多个 SELECT

Bar*_*ski 6 python sql postgresql sqlalchemy psycopg2

我想一次执行多个 SELECT 语句,就像我所做的那样

echo "SELECT * FROM x; SELECT * FROM y;" | psql
Run Code Online (Sandbox Code Playgroud)

这样我只需向数据库发送一次内容,并立即收到所有结果。

用 SQLAlchemy 来做这件事是完美的,但它似乎不受支持(不是吗?)。

我想我可能会重新实现 SQLAlchemy 的某些部分来获得该功能,但我也没有在 psycopg2 中找到此问题的解决方案 - 执行用分号分隔的两个查询仅给出最后一个查询的结果。

那么,是否可以使用 SQLAlchemy(这将是完美的)或 psycopg2(这也将是好的)来做到这一点?

ura*_*ash -1

在您的示例中,运行两个独立的查询。这不是炼金术或psycopg的特征。只是纯Python:

query1 = s.query(x).all()
query2 = s.query(y).all()
out = query1, query2
Run Code Online (Sandbox Code Playgroud)

  • 这不是解决我的问题的方法。我知道如何获取两个查询的结果。我的意思是这样做,数据被发送到 Postres 一次并从中接收一次。我在问题里写得很清楚了。 (2认同)