当前位置:  数据库>mysql

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

    来源: 互联网  发布时间:2014-10-07

    本文导语:  mysql中的自增auto_increment功能相信每位phper都用过,也都知道如何设置字段为自增字段,但并不是所有phper都知道auto_increment的起始值和递增量是如何设置的!本文就为大家分享一下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 重新计数(让id从1开始)
  • 怎么重置mysql的自增列AUTO_INCREMENT初时值
  • 解析mysql中的auto_increment的问题
  • Mysql设置查询条件(where)查询字段为NULL
  • MySQL降权运行之MySQL以Guests帐户启动设置方法
  • Win2003服务器安装及设置教程 MySQL安全设置图文教程
  • mysql myisam 优化设置设置
  • 装了两个mysql,如何设置登录命令。
  • mysql 编码设置命令
  • 如何设置才能远程登录Mysql数据库
  • linux下 mysql [设置或是连接]的问题
  • 我在linux8.0下装了mysql,已经运行进程mysqld,但怎么设置和使用它呢?
  • Mysql 默认字符集设置方法(免安装版)
  • MySQL表名不区分大小写的设置方法
  • mysql 设置查询缓存
  • 基于mysql 5.5 设置字符集问题的详解
  • 关于初次安装mysql时设置密码的问题
  • linux c API 怎样能设置远程访问mysql数据库的权限?
  • php开源软件 iis7站长之家
  • mysql数据库远程访问设置方法
  • 怎样在JB7里面设置MySQL的JDBC驱动?
  • MySQL数据库设置远程访问权限方法小结
  • ubuntu下设置mysql自动备份的例子
  • mysql重装后出现乱码设置为utf8可解决
  •  
    本站(WWW.)旨在分享和传播互联网科技相关的资讯和技术,将尽最大努力为读者提供更好的信息聚合和浏览方式。
    本站(WWW.)站内文章除注明原创外,均为转载、整理或搜集自网络。欢迎任何形式的转载,转载请注明出处。












  • 相关文章推荐
  • MySQL实现类似Oracle中的decode()函数的功能
  • 在MySQL如何实现如:select top 2 * from board; 这样的提取前N条记的功能?
  • mysql实现根据多个字段查找和置顶功能
  • MySQL主从复制配置心跳功能介绍
  • mysql函数split功能实现
  • PHP实现把MySQL数据库导出为.sql文件实例(仿PHPMyadmin导出功能)
  • 基于php和mysql的简单的dao类实现crud操作功能
  • windows和linux安装mysql后启用日志管理功能的方法
  • jsp连接MySQL操作GIS地图数据实现添加point的功能代码
  • jsp连接MySQL实现插入insert操作功能示例
  • ThinkPHP结合ajax、Mysql实现的客户端通信功能代码示例
  • 从MySQL复制功能中得到的一举三得实惠分析
  • PHP、MySql、jQuery 实现“顶”与“踩”投票功能
  • jsp操作MySQL实现查询/插入/删除功能示例
  • android+json+php+mysql实现用户反馈功能方法解析
  • 具有负载均衡功能的MySQL服务器集群部署及实现
  • mysql中如何查看最大连接数(max_connections)和修改最大连接数
  • 在 linux下输入"mysql"命令,进入mysql命令行,但出现“Can't connetc to local MySQL server thuough socket /var/lib/mysql/mysql.sock
  • Mysql查询错误:ERROR:no query specified原因
  • MySQL 重装MySQL后, mysql服务无法启动
  • php安装完成后如何添加mysql扩展
  • 为什么用linux安装盘安装了mysql后,启动mysql,提示找不到mysql.sock文件?
  • mysql中查询当前正在运行的SQL语句并找出mysql中运行慢的sql语句
  • 請教,在redhat linux7.2+mysql 中,系統提示mysql已啟動,網頁卻不能訪問mysql?
  • Myeclipse中自带Tomcat的JDBC连接池配置(mysql和mssql)
  • 求解释: useradd -g mysql mysql -d /home/mysql -s /sbin/nologin
  • MySQL Workbench的下载安装与使用教程
  • 在Linux内安装了Mysql,无法进入Mysql.
  • php中内置的mysql数据库连接驱动mysqlnd简介及mysqlnd的配置安装方式
  • 怎样在linux终端输入mysql直接进入mysql?
  • VS2012+MySQL+SilverLight5的MVVM开发模式介绍


  • 站内导航:


    特别声明:169IT网站部分信息来自互联网,如果侵犯您的权利,请及时告知,本站将立即删除!

    ©2012-2021,,E-mail:www_#163.com(请将#改为@)

    浙ICP备11055608号-3