A表和B表结构一样。每个月底A表的数据要备份到B表。
B表数据量比A表要大。所以
B表同样数据存在的话,
A更新到B,
数据不存在的话,
A添加到B这SQL怎么写啊?
B表数据量比A表要大。所以
B表同样数据存在的话,
A更新到B,
数据不存在的话,
A添加到B这SQL怎么写啊?
解决方案 »
- 新手求教:ORA-01422: 实际返回的行数超出请求的行数
- sql 语句查询一个表中不同的记录有多少条?
- 急求指导create table的权限问题
- 关于一个简单的sql语句,请进来帮忙
- 如何将excel中的数据导入oracle中
- 简单的sql查询问题,急~~!
- 用for update语句后,执行查询报错:fetch out of sequence(oracle数据库)
- oracle 8.1.6 for NT 的安装问题
- SOS!!!! 简单的建立视图的语句!回答就给分!!!
- win10 下安装oracle 11g后,SQL Plus出现乱码问题
- 查询视图的时候出现ORA-01722:无效数字
- !!推荐本学习数据库的好书吧!谢谢!!
A更新到B 又是怎么个更新法?如果字段不是太多,请给出表结构
结构: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)--插入
就是用A的主KEY到B表查询,
B表有数据的就更新。
找不到数据就插入。
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......)