两个结构一样表的备份

princesky 2010-08-17 10:31:01
A表和B表结构一样。

每个月底A表的数据要备份到B表。
B表数据量比A表要大。所以
B表同样数据存在的话,
A更新到B,
数据不存在的话,
A添加到B

这SQL怎么写啊?
...全文
73 4 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
心中的彩虹 2010-08-17
  • 打赏
  • 举报
回复
[Quote=引用楼主 princesky 的回复:]
A表和B表结构一样。

每个月底A表的数据要备份到B表。
B表数据量比A表要大。所以
B表同样数据存在的话,
A更新到B,
数据不存在的话,
A添加到B

这SQL怎么写啊?
[/Quote]



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......)




princesky 2010-08-17
  • 打赏
  • 举报
回复
不好意思,确实有些模糊。其实很简单。
就是用A的主KEY到B表查询,
B表有数据的就更新。
找不到数据就插入。

duanzhi1984 2010-08-17
  • 打赏
  • 举报
回复
[Quote=引用楼主 princesky 的回复:]
A表和B表结构一样。

每个月底A表的数据要备份到B表。
B表数据量比A表要大。所以
B表同样数据存在的话,
A更新到B,
数据不存在的话,
A添加到B

这SQL怎么写啊?
[/Quote]
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)--插入







csuxp2008 2010-08-17
  • 打赏
  • 举报
回复
描述太过模糊了,

B表同样数据存在的话 是什么? 整条记录完全一致?
A更新到B 又是怎么个更新法?

如果字段不是太多,请给出表结构
1 安装方法: 此系统为测试版本,只是一个大体的框架,直接解压缩到c: ewsoft目录下即可,注意只能为此目录,且不能改变其目录结构,在正式版中将提供自动目录搜寻功能。 “newsoft”目录下为源文件。 “my”子目录中为系统的exe文件,双击即可运行。 “lib”子目录为系统存放类文件目录。 2 功能介绍: 对办公用品的购买,领取进行管理。 本系统可以设置用户权限,根据权限可以实现不同级别的操作; 系统初始密码为:超级用户:用户名、口令都为vip 一般用户:用户名、口令都为user 类别添加:添加所购物品分类,如钢笔、笔记本等; 部门添加:添加公司部门,还没有加上,有兴趣的朋友可以自己加上,方法与类别添加一样,名为bm; 物品入库:采购来的物品应及时入库,若两次采购相同的物品,系统会自动计算其平均价格,并更新购买日期。注:此版本现只能计算平均成本和更新最后采购日期,但当有多个采购员是不能看出到底是谁进的货,有兴趣的朋友可以修改。 领用登记:领用办公用品后,应及时入库登记,系统会自动分摊费用,可以按月、季、年结帐分摊费用。注:设想改为到一定时期(如一个月),自动备份数据,打印报,交财务分摊费用。 报打印:可以按年、季、月或自定义一段时期打印报。 更多功能正在完善中,可以来信与我交流。 3 系统说明 由于时间仓促,系统的详细说明教程还没有写,需要的朋友可以来信索取,等完成后我会发到您的信箱中。 4 意见反馈 由于近期要为公司开发一套办公管理软件(网络版),这是其中一个模块,希望您试用以后能给我一点意见。

3,496

社区成员

发帖
与我相关
我的任务
社区描述
Oracle 高级技术相关讨论专区
社区管理员
  • 高级技术社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧