mysql自动增量 - 删除记录后重新分配

Wot*_*els 1 php sql auto-increment

我正在使用auto-increment为我的数据库中的每个新条目分配一个id.另外,根据当前的页面编号,我有一个php脚本,它从这个数据库中选择了10个.例如,如果当前页面为2,则脚本应选择id = 20和id = 29之间的每个条目.

现在,如果我删除一个条目,id就会丢失.因此,当id28被删除时,脚本将仅显示9次委托.

有没有办法auto-increment在删除e记录后重新分配值?

Vot*_*ple 5

这通常被认为是可取的:如果28删除了条目号,则永远不会再有条目28.如果有人试图引用它,他们显然试图引用已被删除的那个,并且您可以报告错误.

如果你回去并重新分配28到一些新条目,现在你不知道这个人是指 记录28还是记录.

让我们退后一步,重新审视你想做的事情.你的目标不是在20和之间显示十个条目30.您的目标是显示符合条件的十个条目.为此,您可以使用内置LIMITOFFSET术语:

SELECT ...
FROM ...
WHERE ...
OFFSET 29
LIMIT 10
Run Code Online (Sandbox Code Playgroud)

OFFSET告诉MySQL从哪里开始计数,并LIMIT告诉它如何不计其数.MySQL将把整个结果集放在一起,然后从30日开始给你10个条目.那是你的第四页结果.现在它们碰巧具有什么ID并不重要.