A表和B表结构一样。每个月底A表的数据要备份到B表。
B表数据量比A表要大。所以
B表同样数据存在的话,
A更新到B,
数据不存在的话,
A添加到B这SQL怎么写啊?

解决方案 »

  1.   

    描述太过模糊了,B表同样数据存在的话   是什么?  整条记录完全一致?
    A更新到B           又是怎么个更新法?如果字段不是太多,请给出表结构
      

  2.   

    try
    结构:ID (主键),name,type,sex..
    update B SET B.name=A.name,B.type=A.type,B.sex=A.sex FROM A where A.ID=B.ID  --更新
    INSERT INTO B SELECT *FROM A WHERE NOT EXISTs(SELECT 1 FROM B WHERE B.ID=A.ID)--插入
      

  3.   

    不好意思,确实有些模糊。其实很简单。
    就是用A的主KEY到B表查询,
    B表有数据的就更新。
    找不到数据就插入。 
      

  4.   


    alter table B nologging;merge into B using A on (A.id=B.id)
    when matched then update set B.col1=A.col,B.col12=A.col2....
    when not matched then insert(B.id,B.col,B.col2......) 
    values(A.id,A.col,A.col2......)