我想执行一个选择查询,返回数据库中的大量数据。所述数据库迫使我将我的查询拆分为 10000 个结果的 block ,并带有 offset+limit。当我遍历这些 block 时,其他人更新了数据库,这在某些情况下可能会使数据库多次返回同一行。我通过一个后处理过滤器来处理这个问题,该过滤器删除了具有重复 ID 的行,但我想知道是否有一种方法可以构建一组 sql 查询,使我能够跨多个 select 语句获得数据库的连贯 View 。即,BEGIN+COMMIT 但用于选择。
我有没有提到我不是 sql 人?
最佳答案
你能不能:
按 ID 排序,获取前 10000 个,获取最后一个 ID。
第二次过滤大于最后一个 id,得到下一个 10000。
做同样的事情直到你完成
Select top(10000) * from Table order by id
获取最后一个id
Select top(10000) * from Table where id> LAST order by id
LAST 当然是用数字代替
水平很低,但应该可以解决问题并消除重复
关于sql - 数据库的一致只读 View ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10136837/