我有一个 PostgreSQL 9.2.2 数据库,为我的 ERP 系统提供订单。数据库表包含布尔列,指示是否在其他记录中添加了客户。我使用的代码从数据库中提取行并将它们一次发送到我们的 ERP 系统(单线程)。我的代码在这方面工作得很好;但是在过去的一年中,我们的数量已经增长到足以需要多线程解决方案。
我认为 MVCC 模式对我不起作用,因为 added_customer 列仅在成功添加客户后更新。默认的 MVCC 模式可能会导致同时处理同一行,从而导致重复的 Web 服务调用。我要避免的是对我们的 ERP 系统的重复 Web 服务调用,因为它们可能相当繁重,尽管我承认我不是 MVCC 方面的专家,也不是 PostgreSQL 提供的其他模式的专家。
我的问题是:如何确保在一个 select 语句中返回的一行或一系列行被排除在单独线程中对数据库的其他查询之外?