MySQL 中自定义步长
### 简介
我们知道在 MySQL 中创建表时可以使用 auto_increment
关键字来表示自增序列,例如:
use test; create tb_incre1 ( id int not null auto_increment primary key, name varchar(10) not null default 'xxx' );
该自增选项默认开始于 1
,每次插入时步进序列也为 1
参考官方文档: https://dev.mysql.com/doc/refman/8.0/en/example-auto-increment.html
### 进阶需求
除了使用 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
### 初始化示例
create database db1; 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>

【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· SQL Server 2025 AI相关能力初探
· AI编程工具终极对决:字节Trae VS Cursor,谁才是开发者新宠?
· 开源Multi-agent AI智能体框架aevatar.ai,欢迎大家贡献代码
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南