如何将A表中的数据插入到B表,而且不重复插入?

补充说明一下:A,B结构一样,且都没有主键,A表里包含新旧数据,B表每天只要A表中新增的数据,我用SQL插入语句,将A表插入B表,每次都是重复插入,很郁闷,请高手指点吖!... 补充说明一下:
A,B结构一样,且都没有主键,A表里包含新旧数据,B表每天只要A表中新增的数据,我用SQL插入语句,将A表插入B表,每次都是重复插入,很郁闷,请高手指点吖!
展开
 我来答
别奇Qy
推荐于2018-01-19
知道答主
回答量:1
采纳率:0%
帮助的人:912
展开全部
insert into 表B select * from(
select * from 表A
except
select * from 表A intersect select * from 表B
)
前提是表B和表A的结构完全相同,当然如果把select * 换成别的,那结构不一样也可以控制,用于将存在于表A中,但不存在于表A中的数据插入表B
效率比 not in 的写法要高很多(60万条数据大概高个五十多倍)
愈叶孤丹XS
2012-03-26 · TA获得超过237个赞
知道答主
回答量:218
采纳率:0%
帮助的人:161万
展开全部
看你是不是违背了实体完整性。就是表中不能有任意2行是相同的。具体你举个列子可能大家更能帮到你。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
夏天的风34s
2012-03-26 · TA获得超过117个赞
知道小有建树答主
回答量:168
采纳率:0%
帮助的人:131万
展开全部
可以利用DISTINCT子句可以消除重复
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
tj_angela
2012-03-26 · TA获得超过7530个赞
知道大有可为答主
回答量:6797
采纳率:75%
帮助的人:2583万
展开全部
insert into B
select fieldname from A
where not exists (select * from B where A.fieldname =b.fieldname)
;
追问
我找一种方法
insert into 表B select * from 表A where checksum(*) not in (select checksum(*) from 表B)
通过验证每行的希哈值来确定是否有重复值!一切定是否有重复数据。
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(2)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式