免责声明:本文档可能包含第三方产品信息,该信息仅供参考。阿里云对第三方产品的性能、可靠性以及操作可能带来的潜在影响,不做任何暗示或其他形式的承诺。
概述
本文介绍RDS MySQL实例(云数据库RDS MySQL版)的auto_increment
自增字段相关参数说明。
详细信息
阿里云提醒您:
- 如果您对实例或数据有修改、变更等风险操作,务必注意实例的容灾、容错能力,确保数据安全。
- 如果您对实例(包括但不限于ECS、RDS)等进行配置与数据修改,建议提前创建快照或开启RDS日志备份等功能。
- 如果您在阿里云平台授权或者提交过登录账号、密码等安全信息,建议您及时修改。
本文以au表为例,进行演示说明,步骤如下。
示例说明
RDS MySQL实例经常会使用到auto_increment自增长字段,相关参数的说明如下。两个参数均可以在全局和会话级别设置,但是当auto_increment_offset的值大于auto_increment_increment时,auto_increment_offset参数会被忽略。
参数名称 | 默认值 | 取值范围 | 作用 |
---|---|---|---|
auto_increment_increment | 1 | 1~65535 | 控制增量的幅度。 |
auto_increment_offset | 1 | 1~65535 | 增量开始的位置(开始的偏移量)。 |
演示环境
- 执行如下SQL语句,创建au表。
create table au (col int auto_increment primary key);
- 执行如下SQL语句, 确认当前auto_increment相关参数值为默认值。
SHOW VARIABLES LIKE 'auto_inc%';
系统显示类似如下。
演示场景一:插入奇数
- 依次执行如下SQL语句,设置auto_increment_increment的值为2,即插入数据的id以偶数递增,起始值为奇数,此处起始值为默认值为例。
SET @@auto_increment_increment=2;
系统返回结果类似如下。
SHOW VARIABLES LIKE 'auto_inc%'; - 依次执行如下SQL语句,插入4条测试数据,确认id以奇数间隔递增。
INSERT INTO au
系统显示类似如下。
VALUES (NULL),
(NULL),
(NULL),
(NULL);
SELECT col FROM au;
演示场景二:插入偶数
- 依次执行如下SQL语句,设置auto_increment_increment和auto_increment_offset的值都为2,即插入数据的id以偶数递增,起始值也为偶数,此处以起始值2为例。
SET @@auto_increment_increment=2;
系统返回结果类似如下。
SET @@auto_increment_offset=2;
SHOW VARIABLES LIKE 'auto_inc%'; - 依次执行如下SQL语句,插入4条测试数据,确认id以偶数间隔递增。
INSERT INTO au
系统显示类似如下。
VALUES (NULL),
(NULL),
(NULL),
(NULL);
SELECT col FROM au;
演示场景三:插入以自定义起始的奇数
- 依次执行如下SQL语句,设置auto_increment_increment的值为2,即插入数据的id以偶数递增,并设置起始值为300001。
SET @@auto_increment_increment=2;
系统显示类似如下。
alter table au auto_increment=300001;
SHOW VARIABLES LIKE 'auto_inc%'; - 依次执行如下SQL语句,插入4条测试数据,确认id以奇数间隔递增。
INSERT INTO au
系统显示类似如下。
VALUES (NULL),
(NULL),
(NULL),
(NULL);
SELECT col FROM au;
演示场景四:插入以自定义起始的偶数
- 依次执行如下SQL语句,设置auto_increment_increment和auto_increment_offset的值都为2,即插入数据的id以偶数递增,并设置起始值为300002。
SET @@auto_increment_increment=2;
系统显示类似如下。
SET @@auto_increment_offset=2;
alter table au auto_increment=300002;
SHOW VARIABLES LIKE 'auto_inc%'; - 依次执行如下SQL语句,插入4条测试数据,确认id以偶数间隔递增。
INSERT INTO au
系统显示类似如下。
VALUES (NULL),
(NULL),
(NULL),
(NULL);
SELECT col FROM au;
演示场景五:插入初始值大于增量值
- 依次执行如下SQL语句,设置auto_increment_increment值为5,auto_increment_offset的值为3,即初始值为3,增量值为5。
SET @@auto_increment_increment=5;
系统显示类如下。
SET @@auto_increment_offset=3;
SHOW VARIABLES LIKE 'auto_inc%'; - 依次执行如下SQL语句,插入4条测试数据,确认id以5为间隔递增。
INSERT INTO au
系统显示类似如下。
VALUES (NULL),
(NULL),
(NULL),
(NULL);
SELECT col FROM au;
适用于
- 云数据库 RDS MySQL 版