mysql自增主键在大量删除后如何重新设置避免断层

select * from tt;
+----+
| id |
+----+
|  1 |
|  2 |
|  3 |
|  4 |
|  5 |
|  6 |
|  7 |
|  8 |

|  9 |


delete from tt where id=8;
Query OK, 1 row affected (0.01 sec)


delete from tt where id=9;
Query OK, 1 row affected (0.01 sec)


>insert into tt values(null);
Query OK, 1 row affected (0.01 sec)


select * from tt;
+----+
| id |
+----+
|  1 |
|  2 |
|  3 |
|  4 |
|  5 |
|  6 |
|  7 |
| 10 |
+----+

看到新插入的记录是在10开始的不是在8开始,如果想要在8开始,需要在删除数据后,重置下自动增长的位置

delete from tt where id=10;
Query OK, 1 row affected (0.01 sec)


alter table tt auto_increment=8
    -> ;
Query OK, 0 rows affected (0.01 sec)
Records: 0  Duplicates: 0  Warnings: 0


insert into tt values(null);
Query OK, 1 row affected (0.00 sec)


select * from tt;
+----+
| id |
+----+
|  1 |
|  2 |
|  3 |
|  4 |
|  5 |
|  6 |
|  7 |
|  8 |
+----+
8 rows in set (0.01 sec)


看到在重新设置后,自增主键是在8开始了,这样可以避免出现id断层

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值