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
CakePHP:如何在删除行后使自动增量值再次连续_Php_Database_Cakephp_Increment_Maintenance - Fatal编程技术网

CakePHP:如何在删除行后使自动增量值再次连续

CakePHP:如何在删除行后使自动增量值再次连续,php,database,cakephp,increment,maintenance,Php,Database,Cakephp,Increment,Maintenance,我有一个博客,还有4篇文章。帖子的ID是:0、1、8和10。这是因为我删除了第2-7条和第9条。有什么我可以“修复”这些帖子的ID,使它们在我的数据库表中从1到3连续吗?您可以手动删除MySQL列,然后使用相同的属性重新添加它。这些行将被重新排序 或者,使用以下命令: SET @count = 0; UPDATE `users` SET `users`.`id` = @count:= @count + 1; 适当地更换用户和id 您还可以使用以下命令重置自动递增id列: ALTER TABLE

我有一个博客,还有4篇文章。帖子的ID是:0、1、8和10。这是因为我删除了第2-7条和第9条。有什么我可以“修复”这些帖子的ID,使它们在我的数据库表中从1到3连续吗?

您可以手动删除MySQL列,然后使用相同的属性重新添加它。这些行将被重新排序

或者,使用以下命令:

SET @count = 0;
UPDATE `users` SET `users`.`id` = @count:= @count + 1;
适当地更换
用户
id

您还可以使用以下命令重置自动递增id列:

ALTER TABLE `users` AUTO_INCREMENT = 1;

其中,用户将替换为表名。

您可以手动更改其ID,然后设置自动增量的值

alter table users auto_increment 5

你没有。你可以,但绝对不应该。带有AI的字段很可能是代理键,在这种情况下,更改它们将破坏数据库模式。如果你的行需要连续编号,那么你首先就不应该使用人工智能。我同意,最好依赖基于slug的URL,甚至可以使用日期,就像Wordpress那样。这对于浏览器中的可读性/自动完成和SEO来说也更好。ID本身并不重要(如果它是连续的或不连续的)。