问题
批量插入一组数据,数据库中name和age字段组合起来不能有重复,如果出现重复,则直接跳过不插入。
name和age字段组合起来不重复,要求如下:
解决方法
建立name和age的复合索引,并设置为唯一索引
场景一:跳过重复的数据,正常插入其他数据
新增语句改为如下:
insert ignore into gen_table(`name`,`age`) values('小王','25'),('小瑞','23'),('小王','25');
此时重复的数据在插入时会跳过,其他数据正常写入,不会触发事务。
场景二:当出现重复数据的时候报错,触发事务回滚
insert into gen_table(`name`,`age`) values('小王','25'),('小瑞','23'),('小王','25');