【发布时间】:2020-02-10 08:23:39
【问题描述】:
在 postgresql 中插入/更新数据时,很容易在一个事务中execute multiple statements。 (我的目标是避免每个语句的服务器往返,尽管事务隔离通常很有用。)
查询时,我不清楚这是否可能。我不知何故需要知道什么函数将消耗每一位以及如何分离这些位。
connection c("dbname=test user=postgres hostaddr=127.0.0.1");
work w(c);
w.exec("SELECT a, b FROM my_table WHERE c = 3;");
w.exec("SELECT x, y, z FROM my_other_table WHERE c = 'dog';");
w.commit();
假设我有函数 my_parse_function() 和 my_other_parse_function() 可以从每个查询中读取行,我是否分别执行它们。
【问题讨论】:
-
您希望这两个查询在数据库的相同状态下执行吗?
-
是的,抱歉:我有一个上下文,在开始计算之前我将连续执行几十个不同的 SELECT。问题是我是否可以在没有几十次往返数据库的情况下做到这一点。
-
试试这个。 SET TRANSACTION SNAPSHOT 命令允许新事务使用与现有事务相同的快照运行。 postgresql.org/docs/12/sql-set-transaction.html
标签: postgresql libpq libpqxx