sql - 批量postgres多个JDBC select语句

标签 sql postgresql select jdbc batch-processing

如何向包含 2 个选择语句的 Postgres 发出单个 JDBC 调用?这两个 select 语句从不同的表集中进行选择并返回两个不同的结果集 - 因此不能合并。目标是确保从数据库中读取的内容是在选择出现问题时表中数据的一致快照。如果发出两个单独的 select 语句,则有可能在第一个 select 之后和第二个 select 之前更新某些数据。

看起来像 java.sql.Statement 的 addBatch() 和 executeBatch() 不能使用 - 这只能用于更新。尝试将它与选择一起使用会导致 PSQLException 并显示消息“返回结果时没有预期的结果。”在 executeBatch() 上。

最佳答案

您不需要为此跳过任何障碍。只需 BEGIN SERIALIZABLE 隔离中的事务,两个语句就会看到一致的数据 View 。

参见 the JDBC tutorial .

没有其他方法可以确保两个语句看到相同的数据。您可以将它们一起发送,但除非将它们包装在交易中,否则它们仍然可以看到不同的数据。

关于sql - 批量postgres多个JDBC select语句,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17035161/

相关文章:

sql - 多种实体类型的最佳数据库设计

MySQL - 从每个月中选择前 100 条记录

基于多表多列的SQL条件数据展示

database - 从 Firebird 1.5 迁移到 PostgreSQL-9.3

php - 在 MySql 中,SELECT all with DIFFERENT id?

mysql - 如何从同一个表的两列中获得一行中不同的结果?

c# - 显示 SQL Server 存储过程的单个返回值的函数

mysql - Union All Query 耗时太长

sql - 按自定义列对表格进行分组

MySql 如何在 1 个命令中计算行数