将自动增量字段更改为之前的字段

时间:2010-03-14 12:02:48

标签: sql mysql

有一天,wordpress突然从花盆id 9110跳到890000000帖子。 几天之后,我想从id 9111继续追回新帖。 我确定id永远不会达到id 890000000,这里没问题,但id是一个自动增量字段,ALTER TABLE wp8_posts AUTO_INCREMENT = 9111无效。

我可以强制ID从9111继续吗?

1 个答案:

答案 0 :(得分:2)

您可能需要重新编号已存在的帖子,使其ID为9111,然后发出alter table命令。您还必须更改指向此ID的所有其他表中的ID。如果您随后发出alter table命令,它应该可以工作。如果这仍然不起作用,您可以将表重命名为wp8_posts_backup,其中包含:

RENAME TABLE wp8_posts TO wp8_posts_backup

然后,使用相同的模式创建另一个表:

Create Table wp8_posts LIKE wp8_posts_backup;

然后将数据从备份复制到新备份。所有这些仍然需要重新编号旧帖子,或删除它然后重新创建它,因为让数据库知道有一个ID为890000000的记录,并且在创建下一个ID时将始终尝试超过该记录。我相信它使用列上的索引来查找最高的数字,并计算下一个id,而不是在其他地方存储相同的值。这就是为什么必须在任何自动增量场上都有一个独特的索引。