1

我有 2 个不同的 MySQL 服务器。一个是 5.6.12,另一个是 5.5.25a。

在 5.5 版本的服务器中,我可以这样做:

ALTER TABLE AUTO_INCREMENT = 100;
ALTER TABLE AUTO_INCREMENT = 50;

5.6 版本只允许我将 auto_increment 更改为比 auto_increment 更高的值。

当然,我不会尝试将值更改为低于具有最大值的记录的值。

两台 MySQL 服务器都是 InnoDB

我需要在最新版本中使用该评论

有什么线索吗?

4

1 回答 1

2

此查询适用于 mysql 5.6.12 和 5.5.25:

ALTER TABLE  `table_name` AUTO_INCREMENT =10

根据mysql手册

您不能将计数器重置为小于或等于任何已使用的值。对于 MyISAM,如果该值小于或等于 AUTO_INCREMENT 列中当前的最大值,则将该值重置为当前最大值加一。对于 InnoDB,如果该值小于该列中的当前最大值,则不会发生错误,并且当前序列值不会改变。

如果表没有记录,您可以使用TRUNCATE

TRUNCATE TABLE table_name

来自mysql手册

任何 AUTO_INCREMENT 值都会重置为其起始值。即使对于通常不重用序列值的 MyISAM 和 InnoDB 也是如此。


更新: mysql5.6.12 似乎有一些错误:http://bugs.mysql.com/bug.php?id= 69882

于 2013-08-24T12:59:47.100 回答