繁体   English   中英

MySQL AUTO_INCREMENT 计数器出现问题

[英]MySQL AUTO_INCREMENT Counter giving some problem

我有一些 MySQL 表使用具有 auto_increment 功能的主键,这一切似乎都是第一次插入记录时,但是当我删除其间的任何记录时,它不会重置 auto_increment 计数器,而是继续使用最后一个 id。

例如,我插入了具有以下 id 的记录

1,2,3,4,5,6

当我删除5,6之间和下一次插入另一行时,它从 7 继续。而我希望它从 5 继续。它只是不重置 auto_increment 计数器,我尝试通过查询此命令ALTER TABLE amenities AUTO_INCREMENT = 1;来修改表ALTER TABLE amenities AUTO_INCREMENT = 1; 它似乎仍然不起作用。

这是我从 phpMyAdmin Export 获得的其中一张表的示例 DDL。

CREATE TABLE `amenities` (
  `id` int(11) NOT NULL AUTO_INCREMENT,
  `name` varchar(50) NOT NULL,
  PRIMARY KEY (`id`),
  UNIQUE KEY `name` (`name`)
) ENGINE=InnoDB  DEFAULT CHARSET=utf8 AUTO_INCREMENT=5 ;

这不是AUTO_INCREMENT在 MySQL 或任何其他数据库中的工作方式。 AUTO_INCREMENT总是前进。 永远不要重新适应自己来填补空白。

如果您需要所描述的行为,则需要编写自己的代码来处理它。 在您的客户端程序中,在数据库中或任何您认为更好的地方。 请记住,您需要很好地处理事务,以避免在数据库负载过重时出现并发问题。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM