是否可以将数据库中所有表的AUTO_INCREMENT
值设置为最新的插入值?
UPDATE 例如,如果我的表有1000条记录,增量值从1..1000开始,并且我删除了最后900条记录,则字段中的最后一个增量值将为100.我想将AUTO_INCREMENT设置为101.这对于所有表在DB。
答案 0 :(得分:0)
这是自动完成的。
引用manual:
您无法将计数器重置为小于或等于当前正在使用的值的值。对于InnoDB和MyISAM,如果该值小于或等于AUTO_INCREMENT列中当前的最大值,则该值将重置为当前最大AUTO_INCREMENT列值加1。
答案 1 :(得分:0)
AUTO_INCREMENT实际上记住它插入的最后一个数字,即使数据已被删除。因此,如果您的AUTO_INCREMENT数字小于100,您可以临时插入AUTO_INCREMENT number = 100的空白数据,然后将其删除。下次插入数据时,它将转到101。
您可以使用此查询将AUTO_INCREMENT数重置为表中当前最高的数字。
ALTER TABLE table_name AUTO_INCREMENT = 1;
答案 2 :(得分:0)
是否可以将数据库中所有表的AUTO_INCREMENT值设置为最新的插入值?
AUTO_INCREMENT
的值实际上是下一个可用值,即最大值加1。
如果您的表使用InnoDB
引擎,那么您所要做的就是重新启动MySQL服务器(不是计算机而只是MySQL服务)。
documentation解释了AUTO_INCREMENT
如何存储(在内存中,不在光盘上)并在服务启动时恢复的值:
要在服务器重新启动后初始化自动增量计数器,InnoDB会在第一次插入时将以下语句的等效语句执行到包含
AUTO_INCREMENT
列的表中。SELECT MAX(ai_col) FROM table_name FOR UPDATE;
InnoDB递增语句检索的值,并将其分配给列和表的自动递增计数器。默认情况下,该值增加
1
。