现在想要用定时任务,实现当A表有更新时,即往B表中插入一条A表的数据,两表之间用id关联。本来我是这么写的:
insert into B (列1,列2,列3.......)
SELECT 列1,列2,列3....... FROM A
where not exists (select 1 from B where A.id=B.id )
or exists (select 1 from A,
(select id,max(time) as timeB from B group by B ) C where A.id=C.id and A.time>C.timeB
大致是这么个意思:从A表中取数据往B表里插,但满足两个条件之一:
(1)A里有B没有的,这就是第一个not exists 条件;
(2)A,B都有,但是A表记录的时间戳比B表最新的时间戳还要新的。
这么写完当时试了下没有问题,从A表里更新和新增的数据也都能插进去,
于是就挂成了定时任务。