DB专家
我希望有人可以设定正确的方向。
我有两张桌子。表A和表B。系统启动时,将对表A中的所有条目进行整理并复制到表B中(根据表B的架构)。表A可以具有数万行。
系统启动时,表B通过数据库更改通知与表A保持同步。
如果系统重新启动,或者我的服务重新启动,我想重新初始化表B。但是,我想用最少的数据库更新来做到这一点。具体来说,我想:
现在,我不是一个“数据库专家”,所以我想知道这样做的常规方式是什么。
使用exists要继续处理到最低限度。
exists
沿着这些思路进行了一些修改,以使联接正确(也请验证我没有做任何愚蠢的事情,TableA并且TableB从您的描述中得到来回的信息):
TableA
TableB
insert into TableB select * from TableA a where not exists (select 1 from TableB b where b.ID = a.ID) delete from TableB b where not exists (select 1 from TableA a where a.ID = b.ID)