美文网首页
mysql数据插入失败,插入成功后主键跳过自增

mysql数据插入失败,插入成功后主键跳过自增

作者: LeftJoin | 来源:发表于2017-07-20 16:26 被阅读0次

    昨天在调试一个业务代码中,无意间发现了一个问题。数据入库后的主键不是连续自增的,主键键值没过几秒就从两千多直接跳到了五千上下。这是为什么?瞬间引起我的注意。

    先简单说明下环境。Mysql版本:5.6.23。为了防止某些数据重复,数据库中对某些字段设置了唯一索引,即unique key。经确认此表也只有一个业务程序在操作。那么,问题就定位到主键的auto_increment属性上了。

    题重现

    下面来还原问题,以便能准确查找出原因。

    表结构如下:

    CREATETABLE`test_innodb`(`id`int(11)NOTNULLAUTO_INCREMENTCOMMENT'自增ID',`username`varchar(100)NOTNULLCOMMENT'用户名',  PRIMARYKEY(`id`),UNIQUEKEY`UNIQUE_USERNAME`(`username`) )ENGINE=InnoDBDEFAULTCHARSET=utf8

    username字段设置了唯一索引(unique key)。先插入一条数据:

    INSERTINTOtest_innodb (`username`)VALUES('admin');

    执行成功,主键ID为“1”。再次执行此SQL,因username重复,数据入库失败,提示:

    Duplicate entry'admin'forkey'UNIQUE_USERNAME'

    说明insert的时候 数据库是先自增主键 然后再插入数据

    转https://www.marser.cn/tag/mysql.html

    相关文章

      网友评论

          本文标题:mysql数据插入失败,插入成功后主键跳过自增

          本文链接:https://www.haomeiwen.com/subject/sgcjkxtx.html