MySQL自增列之起始值-之步长

alter table t10 AUTO_INCREMENT=2;


进阶需求
除了使用 auto_increment 作为自动增加的序列外,还可以指定自增序列的起始值、步进长度。
例如,我不希望MySQL中的初始值为1、我想让每次插入时的步长为5。此时可以使用全局变量 @@auto_increment_increment和@@auto_increment_offset来实现。

简单来说:

@@auto_increment_increment 用来指定每次插入时前进的步长,例如每次增加5
@@auto_increment_offset 用来指定初始值是多少,它应该小于步长,否则会被忽略
参考官方介绍:https://dev.mysql.com/doc/refman/8.0/en/replication-options-source.html#sysvar_auto_increment_offset

初始化示例

use db1;
create table t1 (
  id int not null auto_increment primary key,
  name varchar(20) not null default ''
);
 
set @@global.auto_increment_increment=3;

> 数据插入测试
mysql> insert into t1 (name) values ('zhangsan');
Query OK, 1 row affected (0.00 sec)
 
mysql> insert into t1 (name) values ('zhangsan1');
Query OK, 1 row affected (0.00 sec)
 
mysql> insert into t1 (name) values ('zhangsan2');
Query OK, 1 row affected (0.00 sec)
 
mysql> insert into t1 (name) values ('zhangsan3');
Query OK, 1 row affected (0.00 sec)
 
mysql> insert into t1 (name) values ('zhangsan4');
Query OK, 1 row affected (0.00 sec)
 
mysql> select * from t1;
+----+-----------+
| id | name      |
+----+-----------+
|  2 | zhangsan  |
|  5 | zhangsan1 |
|  8 | zhangsan2 |
| 11 | zhangsan3 |
| 14 | zhangsan4 |
+----+-----------+
5 rows in set (0.00 sec)
 
mysql> 
posted @   bydljp  阅读(78)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 25岁的心里话
· 闲置电脑爆改个人服务器(超详细) #公网映射 #Vmware虚拟网络编辑器
· 基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
· 零经验选手,Compose 一天开发一款小游戏!
· 通过 API 将Deepseek响应流式内容输出到前端
点击右上角即可分享
微信分享提示