关于MySQL AUTO_INCREMENT

理解MySQL AUTO_INCREMENT自增值的初始值与重置方法
本文详细介绍了MySQL中表格AUTO_INCREMENT属性的初始值设定及修改方式,包括通过创建表时指定初始值、通过ALTER TABLE修改初始值、自增序列最大值被删除后的值重用以及如何通过设置AUTO_INCREMENT_INCREMENT和AUTO_INCREMENT_offset用户变量来调整自增量和偏移值。同时,提供了重置自增值至初始状态的方法。

-->创建表时指定AUTO_INCREMENT自增值的初始值:

    mysql>CREATE TABLE BIN_TBL (ID INT(5) PRIMARY KEY AUTO_INCREMENT)AUTO_INCREMENT=100;

-->通过ALTER TABLE 修改初始值(但要大于表中的AUTO_INCREMENT自增值,否则设置无效):

    mysql>ATLER TABLE BIN_TBL AUTO_INCREMENT=100;

-->如果自增序列的最大值被删除了,则在插入新记录时,该值被重用。

    就是说如果表中原本有AUTO_INCREMENT属性值连续为78、100的值,但100这个数据被删除了,下此再添加数据的时候自增值为101,100被重用了。即使在你将整个表中的所有数据delete清空后,之前的自增序列最大值还是会被重用。

              解决办法是使用:    ATLER TABLE BIN_TBL AUTO_INCREMENT=0;重新设置自增初始值。

-->设置AUTO_INCREMENT_INCREMENT以及AUTO_INCREMENT_offset用户变量值:

        (重启MySQL之后,这些修改会恢复为初始值1)

  mysql>SET auto_increment_increment=10;      #自增量每次增加的值改为10,

  mysql>SET auto_increment_offset=2;               #第一次加载数值时的偏移值的个位值

  mysql>SHOW VARIABLES LIKE 'AUTO_INC%';  #查看修改后变量的值

      mysql>SHOW VARIABLES LIKE 'AUTO_INC%'  

-->显示MySQL的AUTO_INC开头的用户会话变量(SHOW GLOBAL VARIABLES)

+-----------------------------+-------+ 
| Variable_name                   | Value | 
+-----------------------------+-------+ 
| auto_increment_increment |   1      | 
| auto_increment_offset        |   1      | 
+-----------------------------+-------+



转载于:https://my.oschina.net/ajian2014/blog/318559

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值