mysql怎么批量删除表中的数据和怎么删除表数据之后让主键值连续

文章讲述了在MySQL中如何批量删除表数据,保持主键ID连续的方法,包括使用主键删除、调整AUTO_INCREMENT和手动重置ID。强调了MySQL的主键不自动保持连续性,需特殊操作来维持这一特性。
摘要由CSDN通过智能技术生成

mysql怎么批量删除表中的数据和怎么删除表数据之后让主键值连续

首先是怎么批量删除表中的数据

下面是在mysql中创建的表格t_user

CREATE TABLE t_user(
	id INT PRIMARY KEY AUTO_INCREMENT,
	username VARCHAR(20) NOT NULL UNIQUE,
	`password` VARCHAR(32) NOT NULL,
	email VARCHAR(200)
);

在这里插入图片描述

先在其中插入几条数据

INSERT INTO t_user(username,`password`,email) VALUES('admin1','admin1','admin1@fan.com'),
	                                                   ('admin','admin','admin@fan.com')

在这里插入图片描述

通过主键批量删除数据

DELETE FROM t_user WHERE KEY IN(2,3)
//或者DELETE FROM t_user WHERE id IN(2,3)

通过其他键批量删除数据

DELETE FROM t_user WHERE username IN("admin1","admin")

然后是如何删除表数据之后让主键值连续

我们可以看到删除表中数据之后再插入,主键id的值没有从1开始,但是是在之前id=(2,3)的基础上累加

在这里插入图片描述

如果想要删除表中所有数据之后,增加数据从1开始,可以在mysql中增加以下代码(注意:如果数据没有完全删除,下面方法无效)

ALTER TABLE t_user AUTO_INCREMENT = 1

先将所有数据删除之后,执行上面的代码,那么就会得到结果如下

在这里插入图片描述

如果想要从任意位置删除数据之后或者数据没有完全删除之后插入主键有序

先把id弄乱

在这里插入图片描述

接着删除主键列,得到下面的结果

ALTER TABLE t_user DROP id

在这里插入图片描述

然后再执行新增id列,并设置为主键,然后让其自增

ALTER TABLE t_user ADD id INT NOT NULL PRIMARY KEY AUTO_INCREMENT FIRST

得到如下结果
在这里插入图片描述

注意:我们现在删除数据,尝试再插入

在这里插入图片描述

这说明:这种方法不是永久的,每次如果主键被弄乱,就要重新执行上面两句代码,才能恢复连续

最后说明

mysql的主键是不能保持永久连续自增的,所以只能采取类似上面的办法进行手动自增。

参考资源:

mysql数据库删除一条数据之后,主键id不连续的问题解决_mysql删除表中某一行数据 id为什么不变化-CSDN博客

MySQL:自增主键为什么不能保证连续递增_mysql自增id冲突_向北~的博客-CSDN博客

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值