Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/62.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
Php 删除MySQL表中的最后一行_Php_Mysql_Sql - Fatal编程技术网

Php 删除MySQL表中的最后一行

Php 删除MySQL表中的最后一行,php,mysql,sql,Php,Mysql,Sql,当我删除MySQL表中的最后一行,然后插入一个新的行时,为什么id仍然递增,就好像第一行没有被删除一样?有没有一种方法可以防止这种情况发生,这样就好像原始行不存在一样?这里有一个例子 Teachers id first_name 0 joe 1 mike 2 jim 如果我删除“jim”,然后插入“bob”,则bob的id将为3,并且不会有id为2的条目。因为您的id列配置为自动增量,并且不能具有相同的值,除非您手动指定此值。删除任何给定行都不会更改当前的自动增量值 您可

当我删除MySQL表中的最后一行,然后插入一个新的行时,为什么id仍然递增,就好像第一行没有被删除一样?有没有一种方法可以防止这种情况发生,这样就好像原始行不存在一样?这里有一个例子

Teachers
id   first_name
0    joe
1    mike
2    jim

如果我删除“jim”,然后插入“bob”,则bob的id将为3,并且不会有id为2的条目。

因为您的id列配置为自动增量,并且不能具有相同的值,除非您手动指定此值。

删除任何给定行都不会更改当前的自动增量值

您可以通过运行

SHOW TABLE STATUS LIKE 'mytable';
ALTER TABLE 'mytable' AUTO_INCREMENT = '1234';
您可以通过运行来更改自动增量值

SHOW TABLE STATUS LIKE 'mytable';
ALTER TABLE 'mytable' AUTO_INCREMENT = '1234';

您也可以使用ALTER TABLE tablename AUTO_INCREMENT=2,如果在删除行之后和插入新行之前,为了使id增量从2开始,您需要在每次删除操作之后执行此命令,这将自动将自动增量重置为1,并将自动设置为最后可用的id(在您的示例中为2)


您真的不应该担心自动增量idsCool id分配的实际值不会被回收。如果id=1234表示1周前、4天前或刚刚在数据库中的记录,您是否要跟踪这些记录?不会回收密钥以避免id冲突。对于每个事务,密钥必须是唯一的,否则您将被删除n关于大问题谢谢你的所有答案。对我来说,看起来最重要的信息是关键不重要,它必须是唯一的。也就是说,如果我真的想进入并使其成为我自己的,我可以查看下面提到的一些信息,以强制表重置id。它是否存储最后插入的id和不是上一个现有的ID?是的!ID取下一个增量