MySQL自增属性auto_increment_increment和auto_increment_offset
MySQL的系统变量或会话变量auto_increment_increment(自增步长)和auto_increment_offset(自增偏移量)控制着数据表的自增列ID。
mysql> show tables;
Empty set (0.00 sec)
mysql> CREATE TABLE `test_tb1` ( `id` int(4) NOT NULL AUTO_INCREMENT PRIMARY KEY, `name` varchar(20)) ENGINE=InnoDB DEFAULT CHARSET=utf8;
Query OK, 0 rows affected (0.16 sec)
mysql> insert into test_tb1(name) values('Andy'),('Danny');
Query OK, 2 rows affected (0.13 sec)
Records: 2 Duplicates: 0 Warnings: 0
mysql> select * from test_tb1;
+----+-------+
| id | name |
+----+-------+
| 1 | Andy |
| 2 | Danny |
+----+-------+
2 rows in set (0.04 sec)
mysql> show session variables like '%auto_incre%';
+--------------------------+-------+
| Variable_name | Value |
+--------------------------+-------+
| auto_increment_increment | 1 |
| auto_increment_offset | 1 |
+--------------------------+-------+
2 rows in set (0.01 sec)
mysql> set session auto_increment_increment=10;
Query OK, 0 rows affected (0.00 sec)
mysql> show session variables like '%auto_incre%'; -- 改变自增步长
+--------------------------+-------+
| Variable_name | Value |
+--------------------------+-------+
| auto_increment_increment | 10 |
| auto_increment_offset | 1 |
+--------------------------+-------+
2 rows in set (0.01 sec)
mysql> show global variables like '%auto_incre%'; -- 全局变量并没有变化
+--------------------------+-------+
| Variable_name | Value |
+--------------------------+-------+
| auto_increment_increment | 1 |
| auto_increment_offset | 1 |
+--------------------------+-------+
2 rows in set (0.05 sec)
mysql> truncate table test_tb1;
Query OK, 0 rows affected (0.09 sec)
mysql> insert into test_tb1(name) values('Andy'),('Bonny'),('Lisa'),('Jack'),('Robin');
Query OK, 5 rows affected (0.06 sec)
Records: 5 Duplicates: 0 Warnings: 0
mysql> select * from test_tb1;
+----+-------+
| id | name |
+----+-------+
| 1 | Andy |
| 11 | Bonny |
| 21 | Lisa |
| 31 | Jack |
| 41 | Robin |
+----+-------+
5 rows in set (0.00 sec)
获取指定数据表的下一个auto_increment自增值的两种方式:
mysql> show table status \G
*************************** 1. row ***************************
Name: test_tb1
Engine: InnoDB
Version: 10
Row_format: Dynamic
Rows: 5
Avg_row_length: 3276
Data_length: 16384
Max_data_length: 0
Index_length: 0
Data_free: 0
Auto_increment: 51
Create_time: 2018-12-19 14:43:53
Update_time: 2018-12-19 14:54:23
Check_time: NULL
Collation: utf8_general_ci
Checksum: NULL
Create_options:
Comment:
1 row in set (0.00 sec)
mysql> select auto_increment from information_schema.`TABLES` where table_name='test_tb1';
+----------------+
| auto_increment |
+----------------+
| 51 |
+----------------+
1 row in set (0.03 sec)
auto_increment_increment和auto_increment_offset的取值范围: 1 ~ 65535,这个范围和自增列的值没关系,列的数据大小是对应的值类型控制的。
mysql> set auto_increment_yongshiyule178.com increment=-1;
Query OK, 0 rows affected, 1 warning (0.05 sec)
mysql> show variables like '%auto_incre%'; -- 小于1时用默认最小值1
+--------------------------+-------+
| Variable_name | Value |
+--------------------------+-------+
| auto_increment_increment | 1 |
| auto_increment_offset | 1 |
+--------------------------+-------+
2 rows in set (0.00 sec)
mysql> set auto_increment_www.mcyllpt.com increment=65536;
Query OK, 0 rows affected, 1 warning (0.00 sec)
mysql> show variables like '%auto_incre%'; -- 大于65535时用默认最大值65536
+--------------------------+-------+
| Variable_name | Value |
+--------------------------+-------+
| auto_increment_increment | 65535 |
| auto_increment_offset | 1 |
+--------------------------+-------+
2 rows in set (0.00 sec)
mysql> truncate table test_tb1;
Query OK, 0 rows affected (0.49 sec)
mysql> insert into test_tb1(name) values('Andy'), ('Bonny'), ('Danny'), ('Jack'), ('Robin');
Query OK, 5 rows affected (0.01 sec)
Records: 5 Duplicates: 0 Warnings: 0
mysql> select * from test_www.yigouyule2.cn tb1; -- 值可以大于65535
+--------+-------+
| id | name |
+--------+-------+
| 1 | Andy |
| 65536 | Bonny |
| 131071 | Danny |
| 196606 | Jack |
| 262141 | Robin |
+--------+-------+
5 rows in set (0.00 sec)
mysql> truncate table test_tb1;
Query OK, 0 rows www.michenggw.com affected (0.06 sec)
mysql> insert into test_tb1(id, name) values(-3, 'Andy'), (-2, 'Bonny'), (-1, 'Danny');
Query OK, 3 rows affected (0.06 sec)
Records: 3 Duplicates: 0 Warnings: 0
mysql> select * from test_tb1; -- 值可以小于1
+----+-------+
| id | name |
+----+-------+
| -3 | Andy |
| -2 | Bonny |
| -1 | Danny |
+----+-------+
3 rows in set (0.00 sec)
全局(global)与会话(session)自增属性,会话针对当前连接的所有操作,全局变量会在新的连接会话中生效。
mysql> show global variables like 'auto_incre%'; -- 全局的自增属性值
+--------------------------+-------+
| Variable_name | Value |
+--------------------------+-------+
| auto_increment_increment | 1 |
| auto_increment_offset | 1 |
+--------------------------+-------+
2 rows in set (0.01 sec)
mysql> show variables like 'auto_incre%'; -- 会话的自增属性值,同show session variables like 'auto_incre%';
+--------------------------+-------+
| Variable_name | Value |
+--------------------------+-------+
| auto_increment_increment | 65535 |
| auto_increment_offset | 1 |
+--------------------------+-------+
2 rows in set (0.00 sec)
mysql> set global auto_increment_increment=10;
Query OK, 0 rows affected (0.00 sec)
mysql> show variables like 'auto_incre%';
+--------------------------+-------+
| Variable_name | Value |
+--------------------------+-------+
| auto_increment_increment | 65535 |
| auto_increment_offset | 1 |
+--------------------------+-------+
2 rows in set (0.01 sec)
mysql> show global variables like 'auto_incre%';
+--------------------------+-------+
| Variable_name | Value |
+--------------------------+-------+
| auto_increment_increment | 10 |
| auto_increment_offset | 1 |
+--------------------------+-------+
2 rows in set (0.00 sec)
MySQL自增属性auto_increment_increment和auto_increment_offset的更多相关文章
- Mysql设置auto_increment_increment和auto_increment_offset
查看与设置: show variables like '%auto_inc%'; show session variables like '%auto_inc%'; -- //session会话变量 ...
- MySQL系统变量auto_increment_increment与auto_increment_offset学习总结
在MySQL中,系统变量auto_increment_increment与auto_increment_offset是与自增列相关的两个参数变量.在官方文档中,将其划分为Replication Mas ...
- MySQL auto_increment_increment 和 auto_increment_offset
参考这一篇文章:(不过我对这一篇文章有异议) http://blog.csdn.net/leshami/article/details/39779509 1:搭建测试环境 create table t ...
- mysql为字段添加或删除自增属性
删除自增属性: ALTER TABLE `members` CHANGE uid uid INT(10) UNSIGNED NOT NULL ; 添加自增属性: ALTER TABLE `member ...
- MySql id 设定为主键不自增后,再给 sort 字段增加自增属性
需求 id 已经被设置为主键,但是没有给它设置 自增 属性.sort 起到一个排序的作用,需要给它设置一个 自增 属性 加自增属性的前提 表中的属性没有增加自增 赋予自增属性的字段,必须带有 索引 S ...
- mysql 的增删改查
数据库的基本流程就是先看你的数据库中的库都是哪些:show databases; 然后再进入相应的库进行操作 : use+进入的库/表 切换路径 查看这个库内的所有的表: show tabales ...
- Java连接MySQL数据库增删改查通用方法
版权声明:本文为博主原创文章,未经博主允许不得转载. Java连接MySQL数据库增删改查通用方法 运行环境:eclipse+MySQL 以前我们Java连接MySQL数据库都是一个数据库写一个类,类 ...
- Asp.Net操作MySql数据库增删改查
Asp.Net操作MySql数据库增删改查,话不多说直接步入正题.git源码地址:https://git.oschina.net/gxiaopan/NetMySql.git 1.安装MySQL数据库 ...
- mybatis的执行流程 #{}和${} Mysql自增主键返回 resultMap 一对多 多对一配置
n Mybatis配置 全局配置文件SqlMapConfig.xml,配置了Mybatis的运行环境等信息. Mapper.xml文件即Sql映射文件,文件中配置了操作数据库的Sql语句.此文件需要在 ...
随机推荐
- Laravel-初步使用
一.Laravel环境搭建 1.window环境下环境搭建请参考以下链接: 开发环境搭建 - Windows | <Laravel 开发环境部署> | PHP / Laravel 社区文档 ...
- Java应用:经纬度匹配(geohash加密)
本文采用http://gc.ditu.aliyun.com地址进行经纬度匹配,无数量限制 如果给定经纬度进行geohash加密操作,先解密得到相应gps坐标,具体程序如下所示: import java ...
- python 装饰器 生成及原里
# 装饰器形成的过程 : 最简单的装饰器 有返回值的 有一个参数 万能参数 # 装饰器的作用 # 原则 :开放封闭原则 # 语法糖 :@ # 装饰器的固定模式 #不懂技术 import time # ...
- 数据库中pymysql模块的使用
pymysql 模块 使用步骤: 核心类Connect链接用和Cursor读写用 1. 与数据库服务器建立链接 2. 获取游标对象(用于发送和接收数据) 3. 用游标执行sql语句 4. 使用fetc ...
- 阿里云异常网络连接-可疑WebShell通信行为的分析解决办法
2018年10月27日接到新客户网站服务器被上传了webshell脚本木马后门问题的求助,对此我们sine安全公司针对此阿里云提示的安全问题进行了详细分析,ECS服务器被阿里云提示异常网络连接-可疑W ...
- R语言学习笔记(三):零碎知识点(1-10)
1--c() c表示"连接"(concatenate). 在R中向量是连续存储的,因此不能插入或删除元素. 2--seq() seq()的特殊用法,可以用在for循环里for(i ...
- sort()的部分用法
#include <iostream> #include <cstdio> #include <algorithm>//sort要包含的头文件 #include & ...
- RAID(冗余硬盘阵列)
一. RAID定义 RAID( Redundant Array of Independent Disk 独立冗余磁盘阵列 )技术是加州大学伯克利分校1987年提出,最初是为了组合小的廉价磁盘来代替大的 ...
- Linux设定IP地址
下面这些内容是直接从其他地方扒拉过来的,后期根据自己使用情况修改补充 虚拟机的连接方式 1.NAT(网络地址转换,虚拟机可以上网,但不能和物理机通信)-----VMnet82.host only(主机 ...
- 第一篇 Postman的初级使用之设置环境快速切换生成环境与测试环境
POSTMAN是有谷歌的开源工具,在开发调试.测试执行过程中使用频率非常广泛,本文将记录一些postman在测试中常见的一些配置和使用方法 一.基本的页面区域 略,很简单,大家都会看,再有,学习下面的 ...