MySQL字段自增长AUTO_INCREMENT

请注意,本文编写于 191 天前,最后修改于 191 天前,其中某些信息可能已经过时。

1.创建表时

指定AUTO_INCREMENT自增值的初始值(即起始值):

CREATE TABLE XXX (
    ID INT(5) PRIMARY KEY AUTO_INCREMENT
) 
AUTO_INCREMENT=100;/*自增的步长*/
SHOW CREATE TABLE NAME_TBL; /*显示表NAME_TBL创建时的信息*/

一张表只能有一个自增长列,且必须用在key上

2.通过 ALTER TABLE 修改初始值

alter table test add id int; -- 为test表增加一个名称为id,类型为bigint的列*/

alter table test change id id int not null auto_increment primary key; -- 将id列设置为主键并且自增.

3.值重用

如果自增序列的最大值被删除了,则在插入新记录时,该值被重用:

就是说如果表中原本有AUTO_INCREMENT属性值连续为78、100的值,但100这个数据被删除了,下此再添加数据的时候自增值为101,100被重用了。

即使在你将整个表中的所有数据delete清空后,之前的自增序列最大值还是会被重用。

解决办法是:

使用 ALTER TABLE XXX AUTO_INCREMENT=0; 重新设置自增初始值。

4.全局变量

设置AUTO_INCREMENT_INCREMENT以及AUTO_INCREMENT_OFFSET用户变量值:(重启MySQL之后,这些修改会恢复为初始值1)

SET auto_increment_increment=10;  /*自增量每次增加的值改为10*/
SET auto_increment_offset=2; /*初始值*/
show variables like 'auto_inc%';
/*显示MySQL的AUTO_INC开头的用户会话变量(SHOW GLOBAL VARIABLES)*/
+--------------------------+-------+
| Variable_name            | Value |
+--------------------------+-------+
| auto_increment_increment | 1     |
| auto_increment_offset    | 1     |
+--------------------------+-------+

添加新评论

评论列表