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是联合主键,
批量插入时如何防止插入重复数据

图片说明
设置主键

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

简单的做法是加上distinct:

 insert into C(logid, msgid) select distinct logid ,msgid from A, B