MySQL:自动递增减1?

MySQL:自动递增减1?,mysql,auto-increment,Mysql,Auto Increment,我有一些代码可以从数据库中删除帖子: mysql_query("DELETE FROM `posts` WHERE ID = '$id'"); 现在我想设置自动增量减去1,以跟上已删除的帖子。这可能吗?如果是,我怎么做?谢谢 您可以手动设置自动增量值http://dev.mysql.com/doc/refman/5.0/en/example-auto-increment.html,但这是个坏主意 首先,假设有5个帖子。如果ID为3的帖子被删除,您不能将自动增量设置为3,因为ID为4和5仍在使用

我有一些代码可以从数据库中删除帖子:

mysql_query("DELETE FROM `posts` WHERE ID = '$id'");
现在我想设置自动增量减去1,以跟上已删除的帖子。这可能吗?如果是,我怎么做?谢谢

您可以手动设置自动增量值http://dev.mysql.com/doc/refman/5.0/en/example-auto-increment.html,但这是个坏主意

首先,假设有5个帖子。如果ID为3的帖子被删除,您不能将自动增量设置为3,因为ID为4和5仍在使用

其次,如果在另一个表中有任何对该ID的引用没有被删除,那么在重用该ID时,这些引用将是错误的

通常,自动增量值仅用于一次。如果需要,您可以绕过此问题,但实际上没有理由这样做。

您可以手动设置自动增量值http://dev.mysql.com/doc/refman/5.0/en/example-auto-increment.html,但这是个坏主意

首先,假设有5个帖子。如果ID为3的帖子被删除,您不能将自动增量设置为3,因为ID为4和5仍在使用

其次,如果在另一个表中有任何对该ID的引用没有被删除,那么在重用该ID时,这些引用将是错误的


通常,自动增量值仅用于一次。如果您愿意,您可以绕过这个问题,但实际上没有理由这样做。

更改表格yourtable auto_increment=5

也许可以使用子查询来获取计数:


alter table yourtable auto_increment=从yourtable+1中选择count*


你真的确定这就是你想要做的吗?请记住,如果在中间删除行而不是最后一行,则会中断。p> alter table yourtable自动增量=5

也许可以使用子查询来获取计数:


alter table yourtable auto_increment=从yourtable+1中选择count*


你真的确定这就是你想要做的吗?请记住,如果在中间删除行而不是最后一行,则会中断。p> 你真的不想这么做

假设发生了以下情况:

一个id为100的新帖子 一个id为101的新帖子 一个新帖子的id是102 100后被删除。。。你的邮政柜台现在是101 一个id为101的新帖子

现在你有两个101的ID了?如果你的限制让你这么做,那就糟糕了。如果他们不让你,那是不可能的


不管怎样,最好让“ID101”永远死去。不会错过的,还有几十亿个数字可供选择…

你真的不想这么做

假设发生了以下情况:

一个id为100的新帖子 一个id为101的新帖子 一个新帖子的id是102 100后被删除。。。你的邮政柜台现在是101 一个id为101的新帖子

现在你有两个101的ID了?如果你的限制让你这么做,那就糟糕了。如果他们不让你,那是不可能的


不管怎样,最好让“ID101”永远死去。不会错过的,还有几十亿个数字可供选择…

这不是自动递增的工作原理。删除后不应该重用ID为什么?这对你有什么好处?如果id不是最大id怎么办?真的吗?我是不是应该放手,让自动增量自动工作?绝对是佩卡说的。而且你也不知道你要删除的是最后一个创建的。这也是真的!我没想到!非常感谢。这不是自动增量应该如何工作的。删除后不应该重用ID为什么?这对你有什么好处?如果id不是最大id怎么办?真的吗?我是不是应该放手,让自动增量自动工作?绝对是佩卡说的。而且你也不知道你要删除的是最后一个创建的。这也是真的!我没想到!非常感谢。此特定情况下的子查询似乎不起作用,请参阅此特定情况下的子查询似乎不起作用,请参阅