加入收藏 | 设为首页 | 会员中心 | 我要投稿 PHP编程网 - 黄冈站长网 (http://www.0713zz.com/)- 数据应用、建站、人体识别、智能机器人、语音技术!
当前位置: 首页 > 站长学院 > MySql教程 > 正文

MySql中重新设置AUTO_INCREMENT自增值技巧

发布时间:2022-06-11 15:55:31 所属栏目:MySql教程 来源:互联网
导读:在mysql应用中AUTO_INCREMENT通常是设置为主自增id了,但有时我们会测试数据测试数据之后再使用delete删除了数据AUTO_INCREMENT自增值会有空间了,那么我们要如何重新设置AUTO_INCREMENT自增值呢?下面来看看吧. 一般来说,自增值主要是数据表主键或者具有唯一
  在mysql应用中AUTO_INCREMENT通常是设置为主自增id了,但有时我们会测试数据测试数据之后再使用delete删除了数据AUTO_INCREMENT自增值会有空间了,那么我们要如何重新设置AUTO_INCREMENT自增值呢?下面来看看吧.
 
  一般来说,自增值主要是数据表主键或者具有唯一性的字段,在MySQL中可通过数据列的AUTO_INCREMENT属性来自动生成.
 
  可在建表时使用“AUTO_INCREMENT=n”来指定一个自增的初始值,比如:
 
 
  ALTER TABLE test AUTO_INCREMENT=151
 
  说明:
 
  1)如果把一个NULL插入到一个AUTO_INCREMENT数据列里去,MySQL将自动生成下一个序列编号。编号从1开始,并1为基数递增。
 
  2)把0插入AUTO_INCREMENT数据列的效果与插入NULL值一样。但不建议这样做,还是以插入NULL值为好。
 
  3)当插入记录时,没有为AUTO_INCREMENT明确指定值,则等同插入NULL值。
 
  4)当插入记录时,如果为AUTO_INCREMENT数据列明确指定了一个数值,则会出现两种情况,情况一,如果插入的值与已有的编号重复,则会出现出错信息,因为AUTO_INCREMENT数据列的值必须是唯一的;情况二,如果插入的值大于已编号的值,则会把该值插入到数据列中,并使在下一个编号将从这个新值开始递增。也就是说,可以跳过一些编号。
 
  5)如果用UPDATE命令更新自增列,如果列值与已有的值重复,则会出错,如果大于已有值,则下一个编号从该值开始递增.
 
  如何修改Mysql的Auto_increment_increment全局变量,自增步长,先了解下查看全局变量的命令,以下命令都是登陆mysql后操作:
 
  #查看auto_inc开头的全局变量,也就是auto_increment_increment和auto_increment_offset这2个变量
  mysql> SHOW VARIABLES LIKE 'auto_inc%';  
  设置全局变量
 
 
  mysql> SET @@auto_increment_offset=m;
 
  如果以上方法还不生效,或者重启mysql后,又变回来了,那肯定是在my.cnf里面设置了全局变量,这个必须到配置文件里面去修改了,这种修改永久有效,而且无法通过上面的操作再次被修改.
 
  方法二:用vi编辑器打开配置文件,默认位置.
 
  #vi /etc/my.cnf
 
  找到 auto_increment_increment 变量设置的地方,VI里面可以用 "/auto_increment_increment" 找到.
 
  找到后设置 auto_increment_increment=1;即可
 
 

(编辑:PHP编程网 - 黄冈站长网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    热点阅读