標籤:auto_increment mysql
可以看到id欄位此時的自增是從1000開始的,並且已經增長到了1002
select * from k1;
+------+--------+
| id | name |
+------+--------+
| 1000 | xiaoke |
| 1001 | xiaoke |
| 1002 | xiaoke |
+------+--------+
查看一下此時建表語句
show create table k1;
+-------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| Table | Create Table |
+-------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| k1 | CREATE TABLE `k1` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`name` varchar(100) DEFAULT NULL,
PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=1003 DEFAULT CHARSET=utf8 |
這個時候,我們想把id設定為從1開始,使用以下語句:
alter table k1 AUTO_INCREMENT=1;
Query OK, 0 rows affected (0.00 sec)
Records: 0 Duplicates: 0 Warnings: 0
重新插入一條語句
insert into k1 (name) values (‘xiaoke‘);
這時,我們重新查看一下k1表的內容,已經有了4條內容
select * from k1;
+------+--------+
| id | name |
+------+--------+
| 1000 | xiaoke |
| 1001 | xiaoke |
| 1002 | xiaoke |
| 1003 | xiaoke |
+------+--------+
可以看到,k1表的id欄位並沒有從我們設定的1開始!!
我們再來一次,設定表的欄位從10001開始,使用以下語句:
alter table k1 AUTO_INCREMENT=;
我們重新查看一下k1表的內容
select * from k1;
+-------+--------+
| id | name |
+-------+--------+
| 1000 | xiaoke |
| 1001 | xiaoke |
| 1002 | xiaoke |
| 1003 | xiaoke |
| 10001 | xiaoke |
可以看到,這次我們的設定已經生效了,那麼經過驗證說明,通過
alter table TABLE_NAME AUTO_INCREMENT=n
設定表的自增的初始值,只能設定AUTO_INCREMENT=比id欄位的最大值還要大,才可以成功,不可以設定AUTO_INCREMENT比當前的id值小!
在id欄位已經有資料的情況下,如果我們想要AUTO_INCREMENT從1開始,我們可以刪除id欄位,然後重新添加一次id欄位,可使用以下語句
alter table k1 drop id;alter table k1 add id int(11) not null primary key AUTO_INCREMENT first;select * from k1;
+----+--------+
| id | name |
+----+--------+
| 1 | xiaoke |
| 2 | xiaoke |
| 3 | xiaoke |
| 4 | xiaoke |
| 5 | xiaoke |
+----+--------+
本文出自 “小科” 部落格,請務必保留此出處http://5540023.blog.51cto.com/5530023/1891110
mysql修改AUTO_INCREMENT的值