2 u011475211 u011475211 于 2016.01.27 21:49 提问

Sql批量插入 防止重复

我现在有A,B,C三个表,
现有语句,insert into C(logid, msgid) select logid ,msgid from A, B
其中logid是A表中的主键,msgid是B表中的主键,把查询的结构插入C表,C表有3列,
第三列取默认,
C表中logid和msgid是联合主键,
批量插入时如何防止插入重复数据

3个回答

enpterexpress
enpterexpress   2016.01.27 22:07
已采纳

图片说明
设置主键

caozhy
caozhy   Ds   Rxr 2016.01.27 22:00

给不允许重复的字段加上唯一约束,主键不用加。那么你插入如果重复就报错,不会让你插的。

u011475211
u011475211 我要求C表中logid和msgid这两项不能同时相同,但由于是批量插入,所以无法进行if not exist判断,如何解决
接近 2 年之前 回复
wwwsssaaaddd
wwwsssaaaddd   2016.02.01 21:44

简单的做法是加上distinct:

 insert into C(logid, msgid) select distinct logid ,msgid from A, B
Csdn user default icon
上传中...
上传图片
插入图片
准确详细的回答,更有利于被提问者采纳,从而获得C币。复制、灌水、广告等回答会被删除,是时候展现真正的技术了!