MySQL auto_increment_increment,auto_increment_offset 用法

跟标识列有关,搜索了一下,就看到了,学习记录一下。

MySQL中对于表上ID自增列可以在创建表的时候来指定列上的auto_increment属性;等同于SQL server中的identity属性;Oracle则是通过Sequence方式来实现。在MySQL中,系统变量auto_increment_increment,auto_increment_offset 影响自增列的值及其变化规则。本文主要描述这两个系统变量的相关用法。

1.auto_increment_increment与auto_increment_offset作用

SHOW VARIABLES LIKE 'version';

CREATE DATABASE tempdb;

USE tempdb;

-- 查看变量的值
SHOW VARIABLES LIKE '%auto_increment%';

2、演示auto_increment_increment与auto_increment_offset

--常见演示表,使用auto_increment字句
CREATE TABLE t1(
id INT NOT NULL PRIMARY KEY AUTO_INCREMENT , 
col VARCHAR(20) 
);

drop TABLE t1;

SELECT * FROM t1;
#id列可以不用我们写,直接插入,查看表数据后可以看到会自动帮助我们加上
INSERT INTO t1(col) VALUES ('xiaomo'),('xiaobo');
#可以看到id列起始值1,增量也是1.
SELECT * FROM t1;

--清空表
TRUNCATE TABLE t1;
-- 设置步长为5
SET SESSION auto_increment_increment=5;
SHOW VARIABLES LIKE '%auto_incre%';

#再次插入记录
INSERT INTO t1(col) VALUES ('xiaobai');

--看到步长以5位基数发生变化
SELECT  * FROM t1;

--设置初始值5
SET SESSION auto_increment_offset = 5;

SHOW VARIABLES LIKE '%auto_incre%';

TRUNCATE TABLE t1;

INSERT INTO t1(col) VALUES ('xiaoshi');

SELECT  * FROM t1;

 

 

 

3、auto_increment_increment与auto_increment_offset取值范围

最小值分别都是1

 

最大值范围:

 

默认值:

 

4、全局与session级别的设置

 

 

5、已有auto_increment列值任一变量变化的情形

 刚开始:

 开始设置:

 运算规则:

auto_increment_offset运算

 

 

 

 

 

 

 

参考:https://blog.csdn.net/leshami/article/details/39779509

 

posted @ 2021-12-19 16:35  哩个啷个波  阅读(436)  评论(0)    收藏  举报