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

如何用一个表中的某条记录更新另外一个表中相对应的记录
假如我有两个表,tableA和talbeB,两个表的内容和结构完全一样(实际上我是想做手工同步),当tableA表删除了一条记录,假如id=5,我可以用delete from tableB where ID=5来更新B表,同样,在A表中添加新记录时,也可以用insert into table b select * from tableA where id=5,现在的问题是,如果对a表中id=5的记录进行了修改,该如何update命令,总不能用update tableB set …… from tablea left join tableB吧,也就是说,我想使用简单的sql语句来自动完成同步,而不是一个字段一个字段分别赋值.

------解决方案--------------------
SQL code
update table1 a set name=b.name from table1 a inner join table2 b on a.id=b.id

------解决方案--------------------
那就用触发器不就好了?
------解决方案--------------------
怕麻烦的话就用触发器,但性能好象是差了点
------解决方案--------------------
我认为删除后重新插入是较好的办法。因为你不想涉及到写列名呀。好象只能这样了。
当然,可以用触发器实现。写好了就不用你去维护了。
------解决方案--------------------
SQL code
delete   from   tableB   where   ID=5
insert   into   table   b   select   *   from   tableA   where   id=5
--搞定