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为什么不变化
MySQL:自增主键为什么不能保证连续递增_mysql自增id冲突