并发环境下往数据库插入数据时,多插入数据问题

这类属于并发问题,简单说,就是同一条数据还没等插入进去就又执行了一遍插入,但是不能进行

 并发环境下,向同一张表中插入多条数据(主键自增),如果锁表的话,其他的用户插入时等待一定时间会失败

可以采用以下方法:

1、如果在insert into 语句末尾指定了on duplicate key update,并且插入行后会导致在一个UNIQUE索引或PRIMARY KEY中出现重复值,则在出现重复值的行执行UPDATE;如果不会导致重复的问题,则插入新行,跟普通的insert into一样

2、对某个字段做唯一性约束(首先确保这个字段是唯一的)

   ALTER TABLE  ADD  unique(`字段名`);

如果有相同数据插入数据库会报错,这样就能避免出现重复数据了

你可能感兴趣的:(后台,sql)