1. mysql中的自增auto_increment功能相信每位phper都用过,本文就为大家分享一下mysql字段自增功能的具体查看及设置方法

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值将会丢失。

mysql中自增auto_increment功能的相关设置及问题相关推荐

  1. UNITY中使用不安全代码的相关设置

    UNITY中使用不安全代码的相关设置 必须执行以下三个步骤 1,在工程属性中设置:属性-生成-允许不安全代码 2,在Assets目录下增加 smcs.rsp(若打包设置中使用了.net 2.0 sub ...

  2. 中去掉外键_【Java笔记】035天,MySQL中的增删改查

    学习Java的第35天. 今天天除了学习MySQL中的各种约束,MySQL中DML的操作,还有MySQL查询语句ds-- MySQLdz中d的约束有: • 非空约束(not null) • 唯一性约束 ...

  3. MySQL中的表压缩功能

    MySQL版本:8.0.22 os:linux ubuntu 语言:c++.c 在MySQL中支持3种类型的表压缩,依次为:传统压缩.TPC压缩.字典压缩. 第一种:传统压缩 传统的表压缩方式是在My ...

  4. sql server和mysql分页查询_sql server和mysql中分别实现分页功能

    MySQL 在MySQL中,可以用 Limit 来查询第 m 列到第 n 列的记录, 例如: select * from tablename limit m, n sql="select * ...

  5. php mysql primary key_简单分析MySQL中的primary key功能_MySQL

    在5.1.46中优化器在对primary key的选择上做了一点改动: Performance: While looking for the shortest index for a covering ...

  6. medoo update mysql,medoo的增删改功能

    摘要:<?php //载入文件 require __DIR__.'/vendor/autoload.php'; //medoo框架中,凡是写操作(insert,update,delete),都返 ...

  7. 8.MySQL的自增(AUTO_INCREMENT)

    目录 1.为什么需要自增 2.语法 3.注意 4.演示 5.查看自动增长值 6.修改自动增长 7.删除自动增长 8.添加自动增长 1.为什么需要自增 为数据表设置主键约束后,每次插入记录时,如果插入的 ...

  8. angular项目中的增删改功能

    项目中经常用到的增删改查功能(angular6项目) 用到的按钮 <a href="javascript:void(0)" class="btn btn-defau ...

  9. mysql查看修改记录_(转)MySql中监视增删改查和查看日志记录

    转载地址为:http://blog.51cto.com/hades02/1641652 首先在命令行输入 show global variables like '%general%' ,然后出现下面的 ...

最新文章

  1. FreeSWITCH在呼叫失败的情况下如何播放语音提示
  2. 中南大学计算机专业男女比例,你知道吗?中南大学的男女比例居然是这样的
  3. libgdx游戏引擎开发笔记(十)SuperJumper游戏例子的讲解(篇四)---- 主游戏界面内部框架编写...
  4. 以外的文件 删除_原来C盘还可以删除这五个文件,难怪电脑越来越卡!
  5. 工程中选择数据结构和算法的依据
  6. 单链表的头插法和尾插法实现代码(无头结点)
  7. Spark安装及其sbt和maven 打包工具安装
  8. js扩展滚动窗口小插件实现文字左右上下滚动效果实例
  9. 纯CSS自定义button按钮的点击特效
  10. Linux内核态下的文件操作
  11. Python 正则表达式(一)
  12. List中的每个元素,两两为一对(不包括自身)组合
  13. 手把手教您怎么编写第一个单片机程序
  14. Word2Vec模型配置参数
  15. mfc 程序图标变模糊_怎么把模糊的图片变清晰
  16. java 打压缩包_java将文件打成zip包
  17. 一树桃红,在生命的枝头葱茏
  18. K8S以及Kubesphere离线部署方案
  19. Daftart.ai:人工智能专辑封面生成器
  20. web页面下实现文字环绕图片效果

热门文章

  1. akaze特征匹配怎么去掉不合适的点_单应性矩阵应用基于特征的图像拼接
  2. 无处不在的 AWS 云计算
  3. Kubernetes — HOST-DEVICE CNI
  4. 4G EPS 中的消息类型
  5. Linux_LEMP
  6. 伺服电机、舵机、步进电机的区别
  7. 【瞎写代码】系列之redux表面理解
  8. [推荐]国外的Windows Mobile资源站点
  9. shell   脚本之 continue 与break的用法
  10. Linux常用命令汇总(二)