已采纳回答 / 慕粉1852402560
                                
                                                            MySQL的innodb存储引擎支持行级锁,innodb的行锁是通过给索引项加锁实现的,这就意味着只有通过索引条件检索数据时,innodb才使用行锁,否则使用表锁。根据当前的数据更新语句(UPDATE user set name=‘11111’ where account=‘1’),该条件字段account并没有添加索引,所以导致数据表被锁。
                            
                        
                        2018-05-11
                
            
                                最赞回答 / AlanLiu0328
                                
                                                            insert只会锁当前行,别人insert和你insert不冲突。 而update就不一样了。 比如大家都要更新1000元抢Iphone6更新,那么就会抢同一行的锁
                            
                        
                        2018-04-10
                
            
                                最新回答 / 慕盖茨030889
                                
                                                            没有库存的情况下会insert,但是update执行时更新条数小于0,就会抛出异常、事务回滚。好处就是: 用户第一次执行秒杀   insert -> update(持锁) ->commit(释放锁)                  用户第二次执行秒杀    insert -> result减少了事务行级锁的时间。
                            
                        
                        2018-03-26
                
            
                                最赞回答 / 慕粉4220851
                                
                                                            最直接一点也就是老师说的可以给他赋默认值为-2,因为我们在上面往map中存入该字段的时候他的值是null,而null赋值给int型的result会报错,可能是为了避免这种错误吧。
                            
                        
                        2018-03-23
                
             
             
        










