我有两张表A、B,结构一样,字段都是200多个,我想将A中的一条记录更新为B中跟它主键一样的那条记录,
有什么简便方法吗?我不需要那种将字段全部都列出来的方法啊,
也不是太想将记录先删除,再insert的那种方法,
兄弟姐妹们大家帮忙一起看看,小弟在此先谢谢了

解决方案 »

  1.   

    呵呵,是主要是因为那张表有触发器,会引起其他表的数据变更;
    其实我说的那两种方法我也不太确定它们的效率哪个更好,由于主键的值是可以事先知道的,我想直接update的效率应该也不低,我的Oracle也就一般吧,想让大家也帮我想想,
      

  2.   

    所有记录都要更新,还是只更新几条?
    B中没有触发器吗?B更新或插入了,A也跟着更新。
    如果按照你说的,只更新那些改变了的字段,那么你又怎么判断哪些字段是改变了的?
    那这样说是不是要过滤一遍,找到那些更新字段,这不是多此一举吗?还不如直接delete,insert来的快。
      

  3.   

    确实不好弄 
    建议 现将触发器禁了 alter trigger tri_name disable;
    直接删掉 在 
    insert into a select * from b;然后在启用触发器
    alter trigger tri_name enable;
      

  4.   

    update除了一个个列出需更新的字段,好像不好一下更新所有字段。