mysql自動增長的問題,如何恢復從1開始
在一個表中我設置到autoid為自動增長列
例如有如下數據
1 張三 男 20
2 王五 男 22
3 李四 男 25
4 陳大 男 19
現在我把 autoid=3 和 autoid=4 的兩條記錄刪除
然後我再插入一條數據,例如:
insert into userinfo(autoid,username,sex,age) values('null','春哥','男','27');
但是面臨一個問題,編號是從5開始了,而不是接著從3開始.畢竟我 第三條和第四條記錄已經刪除的了.
請問如何讓autoid 從3開始,請高手賜教.
------解決方案--------------------
alter table t_Myxiao7 AUTO_INCREMENT 3;
mysql> create table t_Myxiao7(id int not null auto_increment primary key ,name v archar(10), genda varchar(10),age int); Query OK, 0 rows affected (0.08 sec) mysql> insert into t_Myxiao7 values -> (null,'張三','男',20), -> (null,'王五','男',22), -> (null,'李四','男',25), -> (null,'陳大','男',19); Query OK, 4 rows affected (0.05 sec) Records: 4 Duplicates: 0 Warnings: 0 mysql> mysql> select * from t_Myxiao7; +----+------+-------+------+ | id | name | genda | age | +----+------+-------+------+ | 1 | 張三 | 男 | 20 | | 2 | 王五 | 男 | 22 | | 3 | 李四 | 男 | 25 | | 4 | 陳大 | 男 | 19 | +----+------+-------+------+ 4 rows in set (0.01 sec) mysql> delete from t_Myxiao7 where id=3 or id =4; Query OK, 2 rows affected (0.08 sec) mysql> select * from t_Myxiao7; +----+------+-------+------+ | id | name | genda | age | +----+------+-------+------+ | 1 | 張三 | 男 | 20 | | 2 | 王五 | 男 | 22 | +----+------+-------+------+ 2 rows in set (0.00 sec) mysql> alter table t_Myxiao7 AUTO_INCREMENT 3; Query OK, 2 rows affected (0.19 sec) Records: 2 Duplicates: 0 Warnings: 0 mysql> insert into t_Myxiao7 values -> (null,'春哥','男','27'); Query OK, 1 row affected (0.06 sec) mysql> select * from t_Myxiao7; +----+------+-------+------+ | id | name | genda | age | +----+------+-------+------+ | 1 | 張三 | 男 | 20 | | 2 | 王五 | 男 | 22 | | 3 | 春哥 | 男 | 27 | +----+------+-------+------+ 3 rows in set (0.00 sec) mysql>
ITOKIT.COM提示:如果表中數據沒有用。如果直接刪除數據,自動增長ID還是不會從1開始的,可以利用“清空數據表”。這樣自動增長ID也將會從1開始。
本文轉載自:http://www.myexception.cn/mysql/827353.html
auto_increment
create table test(
id int primary key auto_increment ,
....
)
----------------以上-------------
修改表,增加auto_increment:
alter table test modify id int primary key auto_increment ;
truncate語句,是清空表中的內容,包括自增主鍵的信息。truncate表後,表的主鍵就會重新從1開始。語法:TRUNCATE TABLE table1