…然后,如该问题的其他地方所述,您不应该更改ID。这些ID已经是唯一的,您既不需要也不想重复使用它们。
现在,那…
否则…
对于某些应用程序定义的排序,您很有可能具有 不同的 字段(即PK)。只要此排序不是其他字段所固有的(例如,如果它是用户定义的),那么这没有什么错。
您可以使用(临时)
auto_increment字段重新创建表,然后再删除
auto_increment。
我很想
UPDATE按升序排列并应用一个递增变量。
SET @i = 0;UPDATE `table` SET `myOrderCol` = @i:=@i+1 ORDER BY `myOrderCol` ASC;
(查询未经测试。)
每次 删除项目 时 这样做确实很浪费,但是不幸的是,如果要维护列的完整性,使用这种手动排序方法就无能为力了。
您可以减轻负载,例如在删除
myOrderCol等于的条目后
5:
SET @i = 5;UPDATE `table` SET `myOrderCol` = @i:=@i+1 WHERe `myOrderCol` > 5 ORDER BY `myOrderCol` ASC;
(查询未经测试。)
这会将以下所有值“随机”减一。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)