关于批量比对和插入功能的SQL实现

shawls 2009-07-03 12:07:41
现在有一个这样的项目:

表:
DATA_INSERT
DATA_BUFF
DATA

DATA_INSERT表内是原始数据
DATA_BUFF表内是缓存数据
DATA表里面是最终数据

数据流程如下:
读文本数据,只要符合格式,写如INSERT表,
读INSERT表,比对BUFF表,如果BUFF表中没有重复,则插入BUFF表
读DATA表,比对DATA表,如果DATA表中没有重复,则插入DATA表


现在的问题是,如何将没有重复的数据批量插入下一个表,我现在是通过.NET开发,一条一条比对,非常慢.
但是我用INSET语句去批量插入,总是不成功,有兄弟有好的帮助么?
...全文
93 5 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
ACMAIN_CHM 2009-07-03
  • 打赏
  • 举报
回复

读INSERT表,比对BUFF表,如果BUFF表中没有重复,则插入BUFF表
insert into DATA_BUFF select * from DATA_INSERT where id not in (select id from DATA_BUFF);



读DATA表,比对DATA表,如果DATA表中没有重复,则插入DATA表
insert into DATA select * from DATA_BUFF where id not in (select id from DATA);


smartcatiboy 2009-07-03
  • 打赏
  • 举报
回复
不知道你是如何比对插入的,代码看看
shawls 2009-07-03
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 smartcatiboy 的回复:]
看不懂,为什么要分3个表???
[/Quote]

数据要分阶段处理啊,插入是毛坯数据,BUFF是缓冲数据,DATA是常备数据,最终的DATA库可能会达到千万级的数据量
smartcatiboy 2009-07-03
  • 打赏
  • 举报
回复
看不懂,为什么要分3个表???
wwwwb 2009-07-03
  • 打赏
  • 举报
回复
读文本数据,只要符合格式,写如INSERT表,

读INSERT表,比对BUFF表,如果BUFF表中没有重复,则插入BUFF表
insert into DATA_BUFF
select a.* from DATA_INSERT a
left join DATA_BUFF b on a.id=b.id where b.id is null

读DATA表,比对DATA表,如果DATA表中没有重复,则插入DATA表
Insert into DATA
select a.* from DATA_INSERT a
left join DATA_BUFF b on a.id=b.id where b.id is null

7,732

社区成员

发帖
与我相关
我的任务
社区描述
Microsoft Office Access是由微软发布的关系数据库管理系统。它结合了 MicrosoftJet Database Engine 和 图形用户界面两项特点。
社区管理员
  • Access
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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