我们需要调用外部Web服务来获取一些数据并在本地存储在表中。随着外部Web服务发布的数据快速变化,此过程需要每10分钟重复一次。作为其中的一部分,我们需要清除整个表并重新插入Web服务发布的当前数据。
我们遇到的棘手情况是:当表被截断时,用户查询表并且没有结果?这导致向用户显示无效结果。
有人可以就此提出建议吗?
答案 0 :(得分:4)
在两个操作周围使用事务。这样的事情。
Begin transaction;
truncate table
populate the new table
end transaction
快照隔离可确保您将看到的数据一致。
答案 1 :(得分:0)
如果您可以在表上创建一个视图,那么您可以将数据加载到一个新表中,无论需要多长时间填充它,然后只需更改视图以引用新表。