≡
  • 网络编程
  • 数据库
  • CMS技巧
  • 软件编程
  • PHP笔记
  • JavaScript
  • MySQL
位置:首页 > 数据库 > MySQL

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

人气:361 时间:2020-07-09

这篇文章主要为大家详细介绍了MySQL中自增auto_increment功能的相关设置及问题,具有一定的参考价值,可以用来参考一下。

感兴趣的小伙伴,下面一起跟随四海网的小编小韵来看看吧!

mysql中的自增auto_increment功能相信每位phper都用过,也都知道如何设置字段为自增字段,但并不是所有phper都知道auto_increment的起始值和递增量是如何设置的!本文就为大家分享一下mysql字段自增功能的具体查看及设置方法。

涉及知识介绍:
mysql服务器维护着2种mysql的系统参数(系统变量):全局变量(global variables)和会话变量(session variables)。它们的含义与区别如其各占的名称所示,session variables是在session级别的,对其的变更只会影响到本session;global variables是系统级别的,对其的变更会影响所有新session(变更时已经存在session不受影响)至下次mysql server重启动。注意它的变更影响不能跨重启,要想再mysql server重启时也使用新的值,那么就只有通过在命令行指定变量选项或者更改选项文件来指定,而通过SET变更是达不到跨重启的。
每一个系统变量都有一个默认值,这个默认值是在编译mysql系统的时候确定的。对系统变量的指定,一般可以在server启动的时候在命令行指定选项或者通过选项文件来指定,当然,大部分的系统变量,可以在系统的运行时,通过set命令指定其值。

首先需要介绍一下查看mysql中全局变量的方法:

代码如下:

 
show variables like '%xxx%'; <==> show session variables like '%xxx%'; //session会话变量 
show global variables like '%xxx%'; //全局变量 

例如查看与auto_increment相关的变量方法如下:

代码如下:

 
show variables like '%auto_increment%'; 


一般情况结果为:
variables_name                  value
auto_increment_increment                 1 
auto_increment_offset                 1

第一个变量名 auto_increment_increment 就是指 字段一次递增多少;
第二个变量名 auto_increment_offset 指 自增字段的起始值。
比如,有个表test,字段id为主键,自增;
如果auto_increment_offset=1 , 并且auto_increment_increment=1,那么向表中插入第一条数据时,则该条数据的id=1,第二条id=2,第三条id=3以此类推……
如果auto_increment_offset=2 , 并且auto_increment_increment=10,那么向表中插入第一条数据时,则该条数据的id=2,第二条id=12,第三条id=22以此类推……
注意:如果auto_increment_offset的值大于auto_increment_increment的值,则auto_increment_offset的值被忽略。

了解如何查看及其含义以后,剩下的就是如何修改这些变量的值了,修改也非常简单,语句格式如下:
set auto_increment_increment=10
就这么简单就把变量auto_increment_increment的值设置成了10
—————————————————————————————————————
补充一个看似简单但又不是很简单的问题:
问:如果有一张表,里面有个字段为id的自增主键,当已经向表里面插入了10条数据之后,删除了id为8,9,10的数据,再把mysql重启,之后再插入一条数据,那么这条数据的id值应该是多少,是8,还是11?
答:如果表的类型为MyISAM,那么是11。如果表的类型为InnoDB,则id为8。
这是因为两种类型的存储引擎所存储的最大ID记录的方式不同,MyISAM表将最大的ID记录到了数据文件里,重启mysql自增主键的最大ID值也不会丢失;
而InnoDB则是把最大的ID值记录到了内存中,所以重启mysql或者对表进行了OPTIMIZE操作后,最大ID值将会丢失。

 

本文来自:http://www.q1010.com/177/10100-0.html

注:关于MySQL中自增auto_increment功能的相关设置及问题的内容就先介绍到这里,更多相关文章的可以留意四海网的其他信息。

关键词:MYSQL

您可能感兴趣的文章

  • MySQL 事务处理及表锁定深入简析
  • MySQL表的七种类型详细介绍
  • MySQL如何按照中文排序解决方案
  • InnoDB引擎数据库主从复制同步新的分享
  • 关于MySQL数据库格式化简单介绍
  • MySQL存储过程事务管理简析
  • MySQL抛出Incorrect string value异常分析
  • MySQL data文件夹位置查找
  • MySQL 初始执行文件的使用介绍
  • MySQL定时器开启、调用实现代码
上一篇:MySQL数据库优化需要遵守的原则
下一篇:MySQL定时器开启、调用实现代码
热门文章
  • mysql 修改character_set_server为utf-8的简单示例
  • 解决MySQL丢失文件localhost.localdomain.pid、mysql.sock的示例
  • MySQL 数据类型binary和varbinary的简单示例
  • MySQL:reading initial communication packet问题解决方法
  • MySql 表类型MYISAM、InnoDB区别
  • bash: mysql: command not found 的解决方法
  • MYSQL默认用户名ROOT修改方法
  • MySQL 常用命令菜鸟教程
  • MySQL 使用命令行新建用户并授予权限
  • MySql 数据库物理文件存放位置查看示例
  • 最新文章
    • MySQL查看死锁与解除死锁的简单示例
    • MySQL 慢查询的功能实例
    • MySQL查看死锁与去除死锁的简单示例
    • MySQL找出未提交事务的SQL的简单示例
    • MySQL锁阻塞的的简单示例
    • MySQL中的binary类型使用操作的示例
    • SQL优化教程之in与range查询的简单示例
    • MySQL 的 21 个规范、优化最佳实践!
    • MySQL 字符类型大小写敏感的简单示例
    • 解决mybatis-plus分页传入参数后sql where条件没有limit分页信息的问题

四海网收集整理一些常用的php代码,JS代码,数据库mysql等技术文章。