免责声明:本文档可能包含第三方产品信息,该信息仅供参考。阿里云对第三方产品的性能、可靠性以及操作可能带来的潜在影响,不做任何暗示或其他形式的承诺。

概述

本文介绍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 增量开始的位置(开始的偏移量)。

演示环境

  1. 执行如下SQL语句,创建au表。
    create table au (col int auto_increment primary key);
  2. 执行如下SQL语句, 确认当前auto_increment相关参数值为默认值。
    SHOW VARIABLES LIKE 'auto_inc%';
    系统显示类似如下。

演示场景一:插入奇数

  1. 依次执行如下SQL语句,设置auto_increment_increment的值为2,即插入数据的ID以偶数递增,起始值为奇数,此处起始值为默认值为例。
    SET @@auto_increment_increment=2;
    SHOW VARIABLES LIKE 'auto_inc%';
    系统返回结果类似如下。
  2. 依次执行如下SQL语句,插入4条测试数据,确认ID以奇数间隔递增。
    INSERT INTO au
    VALUES (NULL),
           (NULL),
           (NULL),
           (NULL);
    SELECT col FROM au;
    系统显示类似如下。

演示场景二:插入偶数

  1. 依次执行如下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%';
    系统返回结果类似如下。
  2. 依次执行如下SQL语句,插入4条测试数据,确认ID以偶数间隔递增。
    INSERT INTO au
    VALUES (NULL),
           (NULL),
           (NULL),
           (NULL);
    SELECT col FROM au;
    系统显示类似如下。

演示场景三:插入以自定义起始的奇数

  1. 依次执行如下SQL语句,设置auto_increment_increment的值为2,即插入数据的ID以偶数递增,并设置起始值为300001。
    SET @@auto_increment_increment=2;
    alter table au auto_increment=300001;
    SHOW VARIABLES LIKE 'auto_inc%';
    系统显示类似如下。
  2. 依次执行如下SQL语句,插入4条测试数据,确认ID以奇数间隔递增。
    INSERT INTO au
    VALUES (NULL),
           (NULL),
           (NULL),
           (NULL);
    SELECT col FROM au;
    系统显示类似如下。

演示场景四:插入以自定义起始的偶数

  1. 依次执行如下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%';
    系统显示类似如下。
  2. 依次执行如下SQL语句,插入4条测试数据,确认ID以偶数间隔递增。
    INSERT INTO au
    VALUES (NULL),
           (NULL),
           (NULL),
           (NULL);
    SELECT col FROM au;
    系统显示类似如下。

演示场景五:插入初始值大于增量值

  1. 依次执行如下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%';
    系统显示类如下。
  2. 依次执行如下SQL语句,插入4条测试数据,确认ID以5为间隔递增。
    INSERT INTO au
    VALUES (NULL),
           (NULL),
           (NULL),
           (NULL);
    SELECT col FROM au;
    系统显示类似如下。

适用于

  • 云数据库RDS MySQL版