# 创建关于表t,其中a字段为主键自增
mysql> create table t(a bigint primary key auto_increment, b tinyint);
Query OK, 0 rows affected (0.03 sec)
# 插入一些数据
mysql> insert into t select null, 10;
Query OK, 1 row affected (0.00 sec)
Records: 1 Duplicates: 0 Warnings: 0
mysql> insert into t select null, 20;
Query OK, 1 row affected (0.00 sec)
Records: 1 Duplicates: 0 Warnings: 0
mysql> insert into t select null, 30;
Query OK, 1 row affected (0.00 sec)
Records: 1 Duplicates: 0 Warnings: 0
mysql> insert into t select null, 40;
Query OK, 1 row affected (0.00 sec)
Records: 1 Duplicates: 0 Warnings: 0
# 查看表记录
mysql> select * from t;
+---+------+
| a | b |
+---+------+
| 1 | 10 |
| 2 | 20 |
| 3 | 30 |
| 4 | 40 |
+---+------+
4 rows in set (0.00 sec)
# 删除最后一条数据
mysql> delete from t where a=4;
Query OK, 1 row affected (0.02 sec)
# 查看表创建语句,发现AUTO_INCREMENT=5
mysql> show create table t\G
*************************** 1. row ***************************
Table: t
Create Table: CREATE TABLE `t` (
`a` bigint(20) NOT NULL AUTO_INCREMENT,
`b` tinyint(4) DEFAULT NULL,
PRIMARY KEY (`a`)
) ENGINE=InnoDB
AUTO_INCREMENT=5
DEFAULT CHARSET=latin1
1 row in set (0.00 sec)
# 进行主键回溯模拟
# 重启数据库
[root@mysql ~]# service mysqld restart
Shutting down MySQL.. SUCCESS!
Starting MySQL. SUCCESS!
# 重新查看表创建语句,发现AUTO_INCREMENT=4
mysql> show create table t\G
*************************** 1. row ***************************
Table: t
Create Table: CREATE TABLE `t` (
`a` bigint(20) NOT NULL AUTO_INCREMENT,
`b` tinyint(4) DEFAULT NULL,
PRIMARY KEY (`a`)
) ENGINE=InnoDB
AUTO_INCREMENT=4
DEFAULT CHARSET=latin1
1 row in set (0.00 sec)
# 继续插入语句
mysql> insert into t select null, 50;
Query OK, 1 row affected (0.00 sec)
Records: 1 Duplicates: 0 Warnings: 0
# 查看表的数据,发现上述自增ID=4又重新出现
mysql> select * from t;
+---+------+
| a | b |
+---+------+
| 1 | 10 |
| 2 | 20 |
| 3 | 30 |
|
4
| 50 |
+---+------+
4 rows in set (0.00 sec)
这是因为在MySQL5.7中的表的AUTO_INCREMENT是基于内存,不会持久化在磁盘中,每次启动数据库时,会对每张表进行max(auto_increment) + 1重新作为该表下一次的主键ID的自增值。在MySQL8.0中就不会出现该问题,因为数据会在磁盘中持久化。
编辑推荐:
- 如何选择适合自己的服务器托管商?03-01
- MySQL5.7之auto_increment回溯03-01
- MySQL8.0之XtraBackup03-01
- 《MySQL主从不一致情形与解决方法》03-01
- MySQL MGR 集群搭建(单主模式)03-01
- 服务器租用时如何选择带宽大小?03-01
- 思维导图软件哪个好,英语思维导图怎么画03-01
- MYSQL 对表最大ID 抢加锁时的阻塞分析03-01
下一篇:
相关推荐
-
雷神推出 MIX PRO II 迷你主机:基于 Ultra 200H,玻璃上盖 + ARGB 灯效
2 月 9 日消息,雷神 (THUNDEROBOT) 现已宣布推出基于英
-
制造商 Musnap 推出彩色墨水屏电纸书 Ocean C:支持手写笔、第三方安卓应用
2 月 10 日消息,制造商 Musnap 现已在海外推出一款 Oce
热文推荐
- 《MySQL主从不一致情形与解决方法》
《MySQL主从不一致情形与解决方法》
26-03-01 - 思维导图软件哪个好,英语思维导图怎么画
思维导图软件哪个好,英语思维导图怎么画
26-03-01 - 随笔:MySQL:双主情况下跳过Event的方式
随笔:MySQL:双主情况下跳过Event的方式
26-03-01 - Navicat安装配置
Navicat安装配置
26-03-01 - VIVO什么时候上架了U3x?AI三摄+5000mAh+18W闪充,只要799
- 这5款iPhone要注意了,苹果重演“降频门”,有你使用的机型吗?
这5款iPhone要注意了,苹果重演“降频门”,有你使用的机型吗?
26-03-01 - Centos云成本优化(手把手教你降低Centos云服务器费用)
Centos云成本优化(手把手教你降低Centos云服务器费用)
26-03-01 - MySQL 一个让你怀疑人生的hang死现象
MySQL 一个让你怀疑人生的hang死现象
26-03-01 - mysql 数据表的复制案例
mysql 数据表的复制案例
26-03-01 - MySQL 执行DDL语句 hang住了怎么办?
MySQL 执行DDL语句 hang住了怎么办?
26-03-01
