Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/database/9.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/jsf/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
MySQL自动递增计数器出现一些问题_Mysql_Database_Auto Increment - Fatal编程技术网

MySQL自动递增计数器出现一些问题

MySQL自动递增计数器出现一些问题,mysql,database,auto-increment,Mysql,Database,Auto Increment,我有一些MySQL表,它使用带有自动增量功能的主键,在第一次插入记录时似乎都是这样,但是当我删除中间的任何记录时,它不会重置自动增量计数器,而是继续使用最后一个id 例如,我插入了具有以下id的记录 1,2,3,4,5,6 当我在中间和下次插入另一行时删除5,6,它从7继续。而我希望它从5开始继续。它只是没有重置自动增量计数器,我尝试通过查询以下命令来修改表:auto_increment=1但它似乎仍然不起作用 下面是我从phpMyAdmin导出中获得的一个表的示例DDL CREATE TABL

我有一些MySQL表,它使用带有自动增量功能的主键,在第一次插入记录时似乎都是这样,但是当我删除中间的任何记录时,它不会重置自动增量计数器,而是继续使用最后一个id

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

1,2,3,4,5,6

当我在中间和下次插入另一行时删除
5,6
,它从7继续。而我希望它从5开始继续。它只是没有重置自动增量计数器,我尝试通过查询以下命令来修改表:auto_increment=1但它似乎仍然不起作用

下面是我从phpMyAdmin导出中获得的一个表的示例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 ;

在MySQL或任何其他数据库中,
AUTO_INCREMENT
不是这样工作的<代码>自动增量始终向前。永远不要重新调整自己来填补空白


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

尝试更改自动增量字段的自然行为是个坏主意。如果要显示累进数,可以在查询中使用变量或计数器。重复:我在某个地方读过它,有人说你可以重置计数器,这不是我示例代码的最后一行用于此目的。是的,你肯定可以重置计数器。但是当使用
AUTO_INCREMENT
s时,这是不自然的。啊,我从来都不知道这样做是不好的,谢谢你给我启发。)