今天建了一张表,设置其"id"属性为自动增加类型,但是在查看所有数据的时候,却发现"id"的值不是连续增加的。建表的语法如下:

mysql> create table person_list-> (->     id        int        auto_increment    unique,->    name    varchar(15)   not null,->    sex     varchar(15)   default "中",->    ID_C    varchar(20)   not null           unique,-> vocation   varchar(8),->   salary   float         default 0.0-> )charset=utf8;
Query OK, 0 rows affected (0.09 sec)mysql> desc person_list;
+----------+-------------+------+-----+---------+----------------+
| Field    | Type        | Null | Key | Default | Extra          |
+----------+-------------+------+-----+---------+----------------+
| id       | int(11)     | NO   | PRI | NULL    | auto_increment |
| name     | varchar(15) | NO   |     | NULL    |                |
| sex      | varchar(15) | YES  |     | 中      |                |
| ID_C     | varchar(20) | NO   | UNI | NULL    |                |
| vocation | varchar(8)  | YES  |     | NULL    |                |
| salary   | float       | YES  |     | 0       |                |
+----------+-------------+------+-----+---------+----------------+
6 rows in set (0.00 sec)mysql>

之后我往这张表里面添加了一些数据,从中可以看出我所说的问题

mysql> select * from person_list;
+----+-----------+------+--------------------+--------------+---------+
| id | name      | sex  | ID_C               | vocation     | salary  |
+----+-----------+------+--------------------+--------------+---------+
|  1 | 诸葛亮    | 男   | 360428199908230544 | 蜀国         | 8654.56 |
|  2 | 关羽      | 男   | 360428198908230544 | 蜀国         |  86.236 |
|  3 | 貂蝉      | 女   | 361428198908231479 | 美女集团     | 4566.02 |
|  4 | 西施      | 女   | 795410365478901234 | 美女集团     |   124.1 |
|  5 | 雷军      | 男   | 469787036544025984 | 小米公司     |  1784.1 |
|  6 | 乔布斯    | 男   | 456982103749651024 | 苹果公司     | 88888.9 |
|  7 | 李白      | 中   | 147852036978410210 | NULL         |       0 |
| 10 | 乔布儿    | 男   | 456902103749651024 | 苹果公司     | 88888.9 |
| 13 | 乔布儿    | 男   | 056902103749651024 | 苹果公司     | 88888.9 |
+----+-----------+------+--------------------+--------------+---------+
9 rows in set (0.00 sec)mysql> 

如果我现在再插入一条记录,那么这个新增加的记录的"id"值会是14

mysql> insert into person_list (name,sex,ID_C,vocation,salary) value ("马云","男","444989898784562304","淘宝公司",54588.85124);
Query OK, 1 row affected (0.05 sec)mysql> select * from person_list;
+----+-----------+------+--------------------+--------------+---------+
| id | name      | sex  | ID_C               | vocation     | salary  |
+----+-----------+------+--------------------+--------------+---------+
|  1 | 诸葛亮    | 男   | 360428199908230544 | 蜀国         | 8654.56 |
|  2 | 关羽      | 男   | 360428198908230544 | 蜀国         |  86.236 |
|  3 | 貂蝉      | 女   | 361428198908231479 | 美女集团     | 4566.02 |
|  4 | 西施      | 女   | 795410365478901234 | 美女集团     |   124.1 |
|  5 | 雷军      | 男   | 469787036544025984 | 小米公司     |  1784.1 |
|  6 | 乔布斯    | 男   | 456982103749651024 | 苹果公司     | 88888.9 |
|  7 | 李白      | 中   | 147852036978410210 | NULL         |       0 |
| 10 | 乔布儿    | 男   | 456902103749651024 | 苹果公司     | 88888.9 |
| 13 | 乔布儿    | 男   | 056902103749651024 | 苹果公司     | 88888.9 |
| 14 | 马云      | 男   | 444989898784562304 | 淘宝公司     | 54588.9 |
+----+-----------+------+--------------------+--------------+---------+
10 rows in set (0.00 sec)mysql> 

然后我故意输入10条错误的语句(这个表的ID_C值不能重复)

mysql> insert into person_list (name,sex,ID_C,vocation,salary) value ("马云","男","444989898784562304","淘宝公司",54588.85124);
ERROR 1062 (23000): Duplicate entry '444989898784562304' for key 'ID_C'
mysql> insert into person_list (name,sex,ID_C,vocation,salary) value ("马云","男","444989898784562304","淘宝公司",54588.85124);
ERROR 1062 (23000): Duplicate entry '444989898784562304' for key 'ID_C'
mysql> insert into person_list (name,sex,ID_C,vocation,salary) value ("马云","男","444989898784562304","淘宝公司",54588.85124);
ERROR 1062 (23000): Duplicate entry '444989898784562304' for key 'ID_C'
mysql> insert into person_list (name,sex,ID_C,vocation,salary) value ("马云","男","444989898784562304","淘宝公司",54588.85124);
ERROR 1062 (23000): Duplicate entry '444989898784562304' for key 'ID_C'
mysql> insert into person_list (name,sex,ID_C,vocation,salary) value ("马云","男","444989898784562304","淘宝公司",54588.85124);
ERROR 1062 (23000): Duplicate entry '444989898784562304' for key 'ID_C'
mysql> insert into person_list (name,sex,ID_C,vocation,salary) value ("马云","男","444989898784562304","淘宝公司",54588.85124);
ERROR 1062 (23000): Duplicate entry '444989898784562304' for key 'ID_C'
mysql> insert into person_list (name,sex,ID_C,vocation,salary) value ("马云","男","444989898784562304","淘宝公司",54588.85124);
ERROR 1062 (23000): Duplicate entry '444989898784562304' for key 'ID_C'
mysql> insert into person_list (name,sex,ID_C,vocation,salary) value ("马云","男","444989898784562304","淘宝公司",54588.85124);
ERROR 1062 (23000): Duplicate entry '444989898784562304' for key 'ID_C'
mysql> insert into person_list (name,sex,ID_C,vocation,salary) value ("马云","男","444989898784562304","淘宝公司",54588.85124);
ERROR 1062 (23000): Duplicate entry '444989898784562304' for key 'ID_C'
mysql> insert into person_list (name,sex,ID_C,vocation,salary) value ("马云","男","444989898784562304","淘宝公司",54588.85124);
ERROR 1062 (23000): Duplicate entry '444989898784562304' for key 'ID_C'

之后我又增加1条正确的记录,结果发现该新记录的"ID"值是25,最后一条 跟 倒数第二条 的"ID"值刚好是11-1=10

mysql> insert into person_list (name,sex,ID_C,vocation,salary) value ("马云的儿子","男","444989898784562305","淘宝公司",54588.85124);
Query OK, 1 row affected (0.04 sec)mysql> select * from person_list;
+----+-----------------+------+--------------------+--------------+---------+
| id | name            | sex  | ID_C               | vocation     | salary  |
+----+-----------------+------+--------------------+--------------+---------+
|  1 | 诸葛亮          | 男   | 360428199908230544 | 蜀国         | 8654.56 |
|  2 | 关羽            | 男   | 360428198908230544 | 蜀国         |  86.236 |
|  3 | 貂蝉            | 女   | 361428198908231479 | 美女集团     | 4566.02 |
|  4 | 西施            | 女   | 795410365478901234 | 美女集团     |   124.1 |
|  5 | 雷军            | 男   | 469787036544025984 | 小米公司     |  1784.1 |
|  6 | 乔布斯          | 男   | 456982103749651024 | 苹果公司     | 88888.9 |
|  7 | 李白            | 中   | 147852036978410210 | NULL         |       0 |
| 10 | 乔布儿          | 男   | 456902103749651024 | 苹果公司     | 88888.9 |
| 13 | 乔布儿          | 男   | 056902103749651024 | 苹果公司     | 88888.9 |
| 14 | 马云            | 男   | 444989898784562304 | 淘宝公司     | 54588.9 |
| 25 | 马云的儿子      | 男   | 444989898784562305 | 淘宝公司     | 54588.9 |
+----+-----------------+------+--------------------+--------------+---------+
11 rows in set (0.00 sec)mysql> 

所以我估摸着,在插入记录  语句错误的时候  自动增长类型的值会依旧增加,不是只有正确的时候才会+1。

mysql字段是自动增长类型结果却不是连续的相关推荐

  1. mysql触发器主机自动增长_三分钟带你分清 Mysql 和 Oracle 之间的误区

    摘要:Mysql 和Oracle,别再傻傻分不清. mysql 和Oracle 在开发中的使用是随处可见的,那就简单去了解一下这俩款火的不行的数据库. 本质区别: Oracle数据库是一个对象关系数据 ...

  2. mongodb和mysql中自动增长id_如何在java中维护MongoDB的_id字段的自动增长

    _id字段是MongoDB中一个特殊的字段,它的类型为BSON ObjectId.它是每条记录的第一个属性,并且该属性值必须唯一. BSON ObjectId长12个字节,包含4字节的时间戳.3字节的 ...

  3. MySQL中自动增长类型要求

    自动增长(auto_increment) 1.一个表中只能有一个列为自动增长: 否则会报错Incorrect table definition; there can be only one auto ...

  4. MySQL中的自动增长

    hello,大家好,我是你们的怪味老王,今天我们简单的说说自动增长 自动增长的作用: 问题:为数据表设置主键约束后,每次插入记录时,如果插入的值已经存在,会插入失败. 如何解决:为主键生成自动增长的值 ...

  5. access自动编号怎么解除_Access字段中“自动编号”类型不能再改回来的解决方法...

    从MYSQL数据库导出数据到ACCESS,在修改数据库字段类型时,遇到了"自动编号"无法改回来的情况,把其它类型改为自动编号,就会跳出 在表中输入了数据之后,则不能将任何字段数据类 ...

  6. MySQL 数据库生成自动增长序号

    Oracle 数据库中有 ROWNUM 这个功能,查询 list 后生成序号,很是方便,但 MySQL 是模拟了 Oracle 和 SQL Server 中的大部分功能,可自动生成序号却没有现成的函数 ...

  7. mysql字段定义成text类型的严重影响查询性能

    1.使用text字段查询的结果: 2.去掉这个字段后的查询 两者大概相差了0.9秒,严重影响了性能

  8. 【MySQL知识点】自动增长

  9. Oracle使用序列触发器实现主键id自动增长

    记录一下oracle中的字段自增问题 在mysql中我们可以使用auto_increment来实现自动增长功能 而在oracle主键没有自动增长类型,所以一般使用序列产生的值作为某张表的主键,实现主键 ...

最新文章

  1. Spark性能优化:资源调优篇
  2. Docker技术入门与实战 第二版-学习笔记-9-Docker Compose 项目-2-Compose 命令说明
  3. 【Python】递归绘制科赫曲线及科赫雪花及转换成可执行文件打包
  4. Centos7 Zookeeper
  5. 解决JavaOpenCV的内存问题
  6. 【Solidity】3.类型 - 深入理解Solidity
  7. mysql client 未开启_Django+mysqlclient未关闭数据库连接
  8. from gluonts.trainer import Trainer报错
  9. TD-LTE Technology And Its Measurements(TD-LTE 技术及其应用)
  10. 第四章 ASP.NET MVC HTML.ActionLink输出超链接的具体用法
  11. Apollo中Eureka,metaService,configService关系
  12. 完全免费的在线遥感影像下载器-转载
  13. 虚拟机黑苹果降级5s_苹果降级教程,苹果官方降级和ReRa1n 降级方法,附工具
  14. 计算机cpu后面字母代表什么意思,英特尔CPU型号中最后的字母什么意思?如有不懂欢迎驻足停留...
  15. Halcon实战之MLP颜色匹配(一)
  16. TensorFlow 之 slim(TF-Slim)介绍
  17. 数显之家快讯:【SHIO世硕心语】智慧城市时代下的智慧标识设计初探
  18. 80页4万字政务综合服务平台建设项目方案书(完整版)
  19. 青年是科学的未来:JGG诚聘青年编委
  20. 2012年黑龙江省测绘地理信息质检人员暨国家2000大地坐标系培训合格人员名单

热门文章

  1. Vue基础入门(二)
  2. c语言中后缀字母如 d h b l i,10 C语言中常量的表示.ppt
  3. cisco 3560 MAC MOVE功能解决802.1x认证主机从交换机端口之间移动认证会话不断开问题
  4. 计算机算法分析与设计(基本算法框架)
  5. Hadoop 真的要死了吗?
  6. pytorch - state_dict() , parameters() 详解
  7. orientDB——导入关系数据库数据
  8. JavaWeb_jQuery
  9. 使用IIS完成域名重定向
  10. 小程序switch内部加上文字_还愿师游戏小程序:这个女性向文字游戏有点意思!游戏结局居然......