id是自增列,删除了许多数据,因此id列不连续。
如何在保留其他列不变的情况下,将id列重置,从1开始?
尝试了
alter table table_name auto_increment = 0;
不行
id是自增列,删除了许多数据,因此id列不连续。
如何在保留其他列不变的情况下,将id列重置,从1开始?
尝试了
alter table table_name auto_increment = 0;
不行
a.sql:
use test
delimiter //
create procedure create_table(in table_name text)
begin
declare i int default 0;
create table if not exists table_name(id int primary key auto_increment,content char(50));
while i < 6 do
insert into table_name values(null,"hello");
set i = i+1;
end while;
select * from table_name;
delete from table_name where id in (1,3,5);
select * from table_name;
alter table table_name drop column id;
alter table table_name add column id int primary key auto_increment;
select * from table_name;
drop table if exists table_name;
end;
call create_table('hello');
drop procedure create_table;
//
delimiter ;
mysql> source D:\phpStudy1\WWW\myexpress\koa-note\a.sql
Database changed
Query OK, 0 rows affected (0.00 sec)
id | content |
---|---|
1 | hello |
2 | hello |
3 | hello |
4 | hello |
5 | hello |
6 | hello |
6 rows in set (0.06 sec)
id | content |
---|---|
2 | hello |
4 | hello |
6 | hello |
3 rows in set (0.07 sec)
content | id |
---|---|
hello | 1 |
hello | 2 |
hello | 3 |
3 rows in set (0.20 sec)
Query OK, 0 rows affected (0.20 sec)
Query OK, 0 rows affected (0.20 sec)
4 回答1.4k 阅读✓ 已解决
8 回答1.3k 阅读
3 回答1k 阅读✓ 已解决
2 回答1.7k 阅读
3 回答843 阅读✓ 已解决
2 回答1.6k 阅读
1 回答879 阅读✓ 已解决
可以先将自增ID字段删除,再重新建一个自增的ID字段,就会重新排列。
alter table table_name auto_increment = 0;是将表数据全部清空以后才会重新开始从0自增