MariaDB社区

 找回密码
 注册

QQ登录

只需一步,快速开始

搜索
查看: 7536|回复: 3
打印 上一主题 下一主题

重置自增列(自动增长) AUTO_INCREMENT 初时值

[复制链接]
跳转到指定楼层
1#
发表于 2007-7-20 18:07:06 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
发表者 kider

方法一:
delete from tb1;
ALTER TABLE tbl AUTO_INCREMENT = 100;
(好处,可以设置AUTO_INCREMENT 为任意值开始)
提示:如果表列和数据很多,速度会很慢,如90多万条,会在10分钟以上。


方法二:
truncate tb1;
(好处,简单,AUTO_INCREMENT 值重新开始计数)
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 转播转播 分享分享 分享淘帖 顶 踩
2#
发表于 2008-7-10 16:12:41 | 只看该作者
体别提醒:

在MySQL4.1及以前的版本中,重置自增列(自动增长) AUTO_INCREMENT 初时值只能用在MyISAM表中,而InnoDB表不可以。

MySQL5.0以后版本中则可以了....

注释:有时候,每个表只有一个AUTO_INCREMENT列,此列必须编制索引,不能有DEFAULT值。一个AUTO_INCREMENT列只有在只包含正数的情况下,才能运行正常。插入一个负数会被认为是插入了一个非常大的正数。这样做是为了避免当数字由正数转为负数时出现精度问题,同时也为了确保AUTO_INCREMENT列中不会包含0。

对于MyISAM和BDB表,您可以在一个多列关键字中指定一个AUTO_INCREMENT次级列。

(there can be only one auto column and it must be defined as a key...)
3#
发表于 2008-7-22 13:41:18 | 只看该作者
友情提示:

Mysql的自增列有个特点需要注意一下, 自增列的最大值是保存在内存中的, 每次mysql启动时会根据每个表的最大id 计算自增列的初始值. 因此 在下面的情况中,会出现问题.

步骤:
1. 表A, id列自增,主键.
2. insert 3条记录
3. 删除id=3的记录
4.重启mysql
5.insert第4条记录, 发现id还是3. (因此重启后最大id为2)

提醒大家使用时注意.
4#
发表于 2008-8-28 12:48:55 | 只看该作者
您需要登录后才可以回帖 登录 | 注册

本版积分规则

QQ|Archiver|小黑屋|手机版|MariaDB社区 ( 京ICP备07012489号    |
业务联系: QQ:48474881; 邮箱: 48474881@qq.com; 电话:13911732319
声明:本站部分文章是网友转载,若未经作者同意或署名有误,请联系网站管理员。

GMT+8, 2024-9-20 06:12 , Processed in 0.125573 second(s), 20 queries .

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表