百分百源码网-让建站变得如此简单! 登录 注册 签到领金币!

主页 | 如何升级VIP | TAG标签

当前位置: 主页>网站教程>数据库> mysql中autoincrement修改方法介绍
分享文章到:

mysql中autoincrement修改方法介绍

发布时间:01/15 来源: 浏览: 关键词:
在mysql中我们只要把字段设置属性为autoincrement了就会发现这个类型的字段的长度会自动增长了,如我们设置步长为1这个就会1,2,3这种来了,具体下文深入的分析一下。

1。直接复位自动增量值

ALTER TABLE语法提供了一种方法来重新设置自动增量列。采取看看下面的例子。

ALTER TABLE table_name AUTO_INCREMENT = 1;

请注意,你不能重置计数器的值小于或等于任何已使用的。对于MyISAM,如果该值小于或等于目前在AUTO_INCREMENT列的最大值,该值是目前最大的加一复位。对于InnoDB,如果该值大于当前列中的最大值,没有出现错误和不改变当前序列值。

mysql>
mysql> alter table t2 auto_increment=2;
Query OK, 6 rows affected (0.04 sec)
Records: 6  Duplicates: 0  Warnings: 0

修改mysql表中的自增字段,Mysql中自增字段(AUTO_INCREMENT)的一些常识,MySQL AUTO_INCREMENT

如果还没看懂接着看

查看db.table表的下一条记录auto_increment的值:
show
table status from db like 'table';

如:
mysql>
show table status from mailbox like 'mailbox';        
+---------+--------+---------+------------+------+----------------+-------------+-----------------+--------------+-----------+----------------+---------------------+---------------------+---------------------+-------------------+----------+----------------+---------+
|
Name    | Engine | Version | Row_format | Rows | Avg_row_length | Data_length |
Max_data_length | Index_length | Data_free |Auto_increment|
Create_time         | Update_time         | Check_time          |
Collation         | Checksum | Create_options | Comment |
+---------+--------+---------+------------+------+----------------+-------------+-----------------+--------------+-----------+----------------+---------------------+---------------------+---------------------+-------------------+----------+----------------+---------+
|
mailbox | MyISAM |      10 | Dynamic    | 1681 |            148 |      249688 |
281474976710655 |       104448 |         0 |         15355|
2012-03-13 11:19:10 | 2012-03-13 11:19:10 | 2012-03-13 11:19:10 |
latin1_swedish_ci |     NULL |                |         |
+---------+--------+---------+------------+------+----------------+-------------+-----------------+--------------+-----------+----------------+---------------------+---------------------+---------------------+-------------------+----------+----------------+---------+
1
row in set (0.00 sec)

Auto_increment:15355
这个就是下一条记录会使用的自增ID;


修改db.table表下一条记录使用的自增ID值为20000:
alter
table db.table auto_increment=20000;

如:
mysql> alter table
mailbox.mailbox auto_increment=20000;         
Query OK, 1681 rows affected
(0.05 sec)

这时再进行show table
status from mailbox like 'mailbox';

auto_increment已经变成20000;

新插入的记录,自增字段就会从20000开始;

注意:

使用MySQL Query Browser中可以很方便的实现,使用命令行的话可以使用alter  table 表名 modify column来实现。
ALTER TABLE `c`.`a` MODIFY COLUMN `a` BIGINT(20)  NOT NULL AUTO_INCREMENT;
在执行这个命令时,可能会遇到这个错误:
ALTER TABLE causes auto_increment resequencing, resulting in duplicate entry '1' for key 'PRIMARY'
在网上找到的解决方法是将表中主键为0的记录删除,试了一下,果然可以。

打赏

打赏

取消

感谢您的支持,我会继续努力的!

扫码支持
扫码打赏,你说多少就多少

打开支付宝扫一扫,即可进行扫码打赏哦

百分百源码网 建议打赏1~10元,土豪随意,感谢您的阅读!

共有3人阅读,期待你的评论!发表评论
昵称: 网址: 验证码: 点击我更换图片
最新评论

本文标签

广告赞助

能出一分力是一分吧!

订阅获得更多模板

本文标签

广告赞助

订阅获得更多模板