日期:2014-05-18  浏览次数:20468 次

特殊的表数据同步问题,三表关联插入到一个表,如何解决
如果有a,b,c三个表他们关联查询的结果插入到一个新表d表
例如:
select   a.id,a.rr,a.tt,b.uu,b.pp,c.kk,c.hh   from   a,   b,   c
where   a.id=b.id   and   a.id=c.id
这样的查询结果插入到d表,现在我想要a,b,c三个表和新表d数据同步,
要怎么处理?
比方说如果a表中插入主键id为1的数据了,b表也插入id为1的一些数据了,c表也插入了id为1的某些数据,当然这三个表的id为1的记录内容肯定是不一样了,只是都有这个主键,现在我希望新表d表能够及时地得到这三个关联表进入的数据,就像上面语句的内容一样,他们一有新纪录全部即时插入到新表。

不知道怎么处理,用触发器能解决么,触发器对于a,b,c三个不同表的新数据插入该做出怎样的反应,才能让d表也插入了我要的数据,或者结合存储过程

有什么好办法,大家给点意见,或者示例代码,感激不尽~

------解决方案--------------------
试在a,b,c三张表上分别建for insert触发器.如下

insert into d(id,rr,tt,uu,pp,kk,hh) select a.id,a.rr,a.tt,b.uu,b.pp,c.kk,c.hh from inserted a, b, c
where a.id=b.id and a.id=c.id

上例为a表上的. b,c类同.


------解决方案--------------------
楼上正解