sql - 数据库的一致只读 View

标签 sql database

我想执行一个选择查询,返回数据库中的大量数据。所述数据库迫使我将我的查询拆分为 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/

相关文章:

sql - 如何在 JPA/Hibernate 中执行 native SQL 脚本?

php - 计算数据库中存在的相同项目的总数

node.js - 嵌套对象查询到 Prisma 中的单个数组

sql - 主机 "fe80::1%lo0"的 fatal error : no pg_hba. conf 条目

SQL 按年份选择 3 个唯一 ID 的最大日期

Mysql多对多表查询

sql - 如何在 ORACLE SQL 中找到不在另一个表中的两列的组合?

mysql - 如何通过 sql 查询更改 wordpress 数据库中的 url 永久链接

c++ - 用于定位对象的序列化和数据库技术

mysql - 使用 MySQL 匹配仅从列的开头开始匹配