Mysql主键自增ID
Mysql主键自增ID不是连续的
正常情况下 表的主键设置了自动自增,ID一般都是连续递增的,但是也有情况导致主键是不是连续的。
唯一值冲突
- 首先创建一张表,其中包含唯一索引字段
CREATE TABLE t1 (
id INT AUTO_INCREMENT PRIMARY KEY,
value INT,
UNIQUE index unique_value(value)
);
- 往表中插入 4 笔数据
INSERT INTO t1 (value) VALUES (1), (2), (3), (4);
此时表中有4笔数据,且自动自增值为:5
演示插入唯一值冲突, 插入一笔 value 为4的数据,此时会提示唯一值冲突
INSERT INTO t1 (value) VALUES (4);
此时 自动自增变成了6
再往数据库中插入一笔数据, 可以看到此时 id 为 6
INSERT INTO t1 (value) VALUES (6);
事务回滚
- 首先创建一张表,其中包含唯一索引字段
CREATE TABLE t1 (
id INT AUTO_INCREMENT PRIMARY KEY,
value INT,
UNIQUE index unique_value(value)
);
- 往表中插入 4 笔数据
INSERT INTO t1 (value) VALUES (1), (2), (3), (4);
此时表中有4笔数据,且自动自增值为:5
演示 事务回滚, 开启事务批量插入数据,然后进行回滚
BEGIN;
INSERT INTO t1 (value) VALUES (5), (6), (7);
ROLLBACK;
此时自动自增 变成了 8
再插入一笔数据, ID 值已经是 8 了
INSERT INTO t1 (value) VALUES (5);