【发布时间】:2013-11-16 02:47:15
【问题描述】:
我想一次执行多个 SELECT 语句,就像我做的那样
echo "SELECT * FROM x; SELECT * FROM y;" | psql
这样我只向数据库发送一次,并且一次接收所有结果。
用 SQLAlchemy 来做会很完美,但它似乎不受支持(不是吗?)。
我想我可能会重新实现 SQLAlchemy 的某些部分来获得该功能,但我在 psycopg2 中也没有找到解决此问题的方法 - 执行两个用分号分隔的查询只会给出最后一个查询的结果。
那么,是否可以使用 SQLAlchemy(这将是完美的)或使用 psycopg2(这也可以)来做到这一点?
【问题讨论】:
-
如果这些查询的结果是兼容的,也许
UNION会适用? -
为什么要在一次往返而不是两次往返中执行此操作?请注意,当您向
psql发出两条语句时,它确实 进入数据库两次,就像您发出了两次connection.execute()调用一样。
标签: python sql postgresql sqlalchemy psycopg2