重置自增列(自动增长) AUTO_INCREMENT 初时值
发表者 kider方法一:
delete from tb1;
ALTER TABLE tbl AUTO_INCREMENT = 100;
(好处,可以设置AUTO_INCREMENT 为任意值开始)
提示:如果表列和数据很多,速度会很慢,如90多万条,会在10分钟以上。
方法二:
truncate tb1;
(好处,简单,AUTO_INCREMENT 值重新开始计数) 体别提醒:
在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...) 友情提示:
Mysql的自增列有个特点需要注意一下, 自增列的最大值是保存在内存中的, 每次mysql启动时会根据每个表的最大id 计算自增列的初始值. 因此 在下面的情况中,会出现问题.
步骤:
1. 表A, id列自增,主键.
2. insert 3条记录
3. 删除id=3的记录
4.重启mysql
5.insert第4条记录, 发现id还是3. (因此重启后最大id为2)
提醒大家使用时注意. :victory:
页:
[1]