MySQL中自增auto_increment功能相关的设置及存在的问题

自增auto_increment功能在MySQL认为每个phper已使用。它知道如何设置字段是自增字段,但并不是所有的PHPer知道初始和增量值auto_increment建立起来。本文将分享具体的观点和你的MySQL字段自增功能的设置方法。

知识的引进:
MySQL服务器维护系统参数(系统变量)2种:全局变量(全局变量)和会话变量(Session变量)。如果他们的每个名字的含义和表现之间的差异,会话变量是在会话级别的变化只会影响会议;全局变量是一个制度层面,将影响所有新会话的改变(改变已经存在的会话不是由MySQL服务器受影响)下次重新启动之前,注意它的变化无法重新启动。如果要在MySQL服务器重新启动时使用新值,则只需在命令行中指定变量选项或更改选项文件,以指定设置更改不能达到重新启动。
每个系统变量都有一个默认值,这是在编译MySQL系统时确定的。系统变量的指定通常在服务器启动时在命令行中指定,或者由选项文件指定。当然,大多数系统变量可以在系统运行时由set命令指定。

首先,您需要介绍在MySQL中查看全局变量的方法:
复制代码代码如下所示:
显示变量,如% %;显示会话变量,如% xxx %;会话会话变量。
显示全局变量,如% xxx和全局变量。

例如,看相关的auto_increment变量方法如下:
复制代码代码如下所示:
显示变量''%1 auto_increment %;


一般结果如下:




variables_name
价值

auto_increment_increment


auto_increment_offset

第一个变量的名字,auto_increment_increment,指的是多增加一次。
二变量名称,auto_increment_offset,指的是一个自增字段的起始值。
例如,有一个表测试,字段ID是主键,并且它正在增加。
如果auto_increment_offset = 1和auto_increment_increment = 1,然后插入到表中第一个数据,然后数据的编号为1,第二ID = 2,第三= 3等ID。
如果auto_increment_offset = 2和auto_increment_increment = 10,然后插入到表中第一个数据,然后数据的编号为2,第二ID = 12,第三= 22等ID。
注意:如果在auto_increment_offset价值大于auto_increment_increment价值的价值是不容忽视的auto_increment_offset。

在知道如何查看及其含义之后,剩下的部分是如何修改这些变量的值,而修改非常简单,语句的格式如下所示:
集auto_increment_increment = 10
它是如此简单,设置的变量auto_increment_increment值10
----……----……---- ----—
添加一个看似简单但不是很简单的问题:
问:如果有一个表,有一个自动增量主键字段是id,当插入10个数据到表中,删除ID为8, 9, 10的数据,然后重新启动MySQL,然后插入一个数据,那么数据值应该是id,多少是8,或者是11
答:如果表的类型是MyISAM,然后是11。如果表格类型是InnoDB,然后编号是8。
这是因为这两种存储引擎以不同的方式存储最大ID记录。MyISAM表记录最大的ID在数据文件和MySQL自增主键最大ID值不丢失。
InnoDB,反过来,在内存的最大ID值的记录,所以最大ID值将重新启动后MySQL或优化操作台面上丢了。