如何重置MySQL的自动增量列
1个回答
2014-04-25
展开全部
1。直接复位自动增量值
ALTER TABLE语法提供了一种方法来重新设置自动增量列。采取看看下面的例子。
ALTER TABLE table_name AUTO_INCREMENT = 1;
请注意,你不能重置计数器的值小于或等于任何已使用的。对于MyISAM,如果该值小于或等于目前在AUTO_INCREMENT列的最大值,该值是目前最大的加一复位。对于InnoDB,如果该值大于当前列中的最大值,没有出现错误和不改变当前序列值。
2。截断表
截断表自动增量值自动复位为0。
TRUNCATE TABLE table_name;
谨慎使用。用于截断时,任何的AUTO_INCREMENT计数器复位到零。从MySQL 5.0.13上,AUTO_INCREMENT计数器复位为零的TRUNCATE TABLE,而不管是否有一个外键约束。
一旦发射TRUNCATE时,表处理不记得过去使用的AUTO_INCREMENT值,但从头开始计数。这是真实的,甚至对于MyISAM和InnoDB,通常不重用序列值。
3。下降和重新创建表
这是另一种方式下重启自动增量指数。
DROP TABLE table_name;
CREATE TABLE table_name { ... };
ALTER TABLE语法提供了一种方法来重新设置自动增量列。采取看看下面的例子。
ALTER TABLE table_name AUTO_INCREMENT = 1;
请注意,你不能重置计数器的值小于或等于任何已使用的。对于MyISAM,如果该值小于或等于目前在AUTO_INCREMENT列的最大值,该值是目前最大的加一复位。对于InnoDB,如果该值大于当前列中的最大值,没有出现错误和不改变当前序列值。
2。截断表
截断表自动增量值自动复位为0。
TRUNCATE TABLE table_name;
谨慎使用。用于截断时,任何的AUTO_INCREMENT计数器复位到零。从MySQL 5.0.13上,AUTO_INCREMENT计数器复位为零的TRUNCATE TABLE,而不管是否有一个外键约束。
一旦发射TRUNCATE时,表处理不记得过去使用的AUTO_INCREMENT值,但从头开始计数。这是真实的,甚至对于MyISAM和InnoDB,通常不重用序列值。
3。下降和重新创建表
这是另一种方式下重启自动增量指数。
DROP TABLE table_name;
CREATE TABLE table_name { ... };
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询