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来实现。

简单来说:

### 初始化示例

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>
posted @   Hi_埃里克  阅读(1075)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· SQL Server 2025 AI相关能力初探
· AI编程工具终极对决:字节Trae VS Cursor,谁才是开发者新宠?
· 开源Multi-agent AI智能体框架aevatar.ai,欢迎大家贡献代码
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
点击右上角即可分享
微信分享提示