如果是用主键primary或者唯一索引unique区分了记录的唯一性,避免重复插入记录可以使用:
复制代码 代码如下:
INSERT IGNORE INTO `table_name` (`email`, `phone`, `user_id`) VALUES ('test9@163.com', '99999', '9999')
INSERT INTO persion_results( PName , Dossol , LJID , Ptype , PWorker , StartTime , FinishTime1 , scoreTime , Availability , RLineStr , ReDate , ReTime , C_ID ) SELECT PName , Dossol , LJID , Ptype , PWorker , StartTime , FinishTime1 , scoreTime , Availability , RLineStr , ReDate , ReTime , C_ID FROM temp_persion_results WHERE LJID NOT IN (SELECT LJID FROM persion_results)
select 1 from temp_persion_results where temp_persion_results.LJID='00052'
还有更简单的方法:先在插入表中创建唯一索引,可以是一个字段,也可以是多个字段聚合。在插入语句中使用insert ignore into,忽略存在的数据,就可以添加不重复的记录。
主键不用啦,有非重复索引/约束就可以了,CREATE Index Unique就可以了
当然主键也是一种非重索引,不过一个表只能有一个主键,但是可以有多个非重索引。
插入前判断,也是可以的,这种方法从性能角度考虑,能避免就应该避免。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)