MySQL设置自增初始值和步长

    技术2025-12-14  4

    我这里使用的为Navicat:

    (一般设置特殊的自增值和自增步长是为了:当数据出现错乱时,我们需要将备份的数据和线上的数据进行比对时使用。)

    我们可以通过:SHOW VARIABLES LIKE 'auto_inc%'; 查看当前数据库的自增长设置。

    auto_increment_increment这是自增长的步长。

    auto_increment_offset这是自增长开始的值。

    假如有一张test表,我们要给它增加一个自增列(id列)。

    为表增加自增列的方法:

    alter table `test`add id BIGINT; -- 为test表增加一个名称为id,类型为bigint的列.

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

    那么如果使用默认值的时候,id列的值就是:1,2,3,4,5......

    现在想要更改test表的id增长开始值和增长的步长,可以使用如下方法:

    SET @@auto_increment_increment=3; -- 将自增长步长设置为3

    SET @@auto_increment_offset=4; -- 将自增长开始值设置为4

    我们先看下设置的自增步长和初始值是否改变了:再次执行SHOW VARIABLES LIKE 'auto_inc%'; 

    通过查询结果,我们可以看到,自增步长和初始值已经被改变,那么接下来我们看一下id值会不会按照我们的期望进行设置。

    设置之前,需要删除test表已有的id列,然后重新进行设置:

    第一步:删除test表的id列;

    alter table `test` drop column id; 

    第二步:重新生成主键id,并设置成自增;

    alter table `test`add id BIGINT;

    alter table `test` change id id BIGINT not null auto_increment primary key;

    查看一下结果,看是不是我们期望的值:

    通过结果可以看到:从第二行开始,确实符合我们的设置。

     

    Processed: 0.011, SQL: 9