如何在没有连接的情况下查询多个相关表,并使用JDBC获取一致的数据?

时间:2017-07-26 18:49:45

标签: sql sql-server database jdbc transactions

我正在创建一个通过JDBC连接到给定SQL Server数据库的进程,扫描每个表,并读取自上次运行此进程以来已插入或更新的所有新数据。由于性能问题,数据库的所有者将不允许此进程在任何表上执行连接。

有问题的情景

  • 表A是表B的父级
  • 此过程从表A中读取数据
  • 在阅读表B的过程之前,插入新的父记录 进入表A并将新的子记录插入表B
  • 当阅读表B时,将会出现不存在的子记录 在结果集中有相应的父记录 先前阅读过表A

如何在没有连接的情况下查询多个相关表,并使用JDBC获取一致的数据?

1 个答案:

答案 0 :(得分:0)

如果你不能做JOIN,那么你可能只需要跟踪每个父表的每个检索到的主键,然后使用它们来查询子行。它将使查询复杂化,并为数据库增加更多压力,因为您在单个JOINed查询中执行更多查询,但它应该给出相同的结果。