本帖最后由 liuanswer 于 2011-09-29 12:27:02 编辑

解决方案 »

  1.   

    即使由于某些原因导致插入失败,但auto_increment 还是会被计数的。MYSQL是先通过内部函数生成你的auto_increment值,然后插入,插入的时候产生unique键冲突,导致插入失败。
      

  2.   

    你可以理解为系统的自增长字段都是有专门的表维护的,insert时,该字段的计数已经加1,至于后面insert是否成功是不影响的有空的话,不妨试一下,如果用事务的话,insert失败后回滚是否还会加1
      

  3.   

    必须自动增长,无论成功与否,否则,多线程,高并发情况下:
    事务1,拿到ID=1,还没来得及commit,事务2也来获取这个ID,难道返还给它1?