如何在SQL中重新排序跳过数字

时间:2019-06-06 06:40:55

标签: sql oracle

注册横幅广告时,必须通过选择框设置横幅广告的排序顺序(即横幅广告列表的长度+ 1)

如果我注册了5个横幅(1、2、3、4、5),则在删除2个横幅(2、4)之后再剩下3个横幅(1、3、5)。删除后,我必须在sql中将其重新排序为1、2、3。

因为当我更新排序顺序为5的横幅时,由于选择框固定为横幅列表的长度+1

,所以无法显示此消息

当我要在末尾注册新横幅(数字4)时,由于最后已经存在5个,所以不能最后注册。

我不知道尝试这个

1 个答案:

答案 0 :(得分:0)

您不需要更新列,您需要一个序列

创建一个sequence来处理ID。插入新行时,请使用nextval顺序。

create sequence bannerseq
  MINVALUE 1
  START WITH 1
  INCREMENT BY 1
  CACHE 20;

那么您的插入内容将是:

insert into banner (id, othercols)
values (bannerseq.nextval, 'Somevalue');

这有助于减轻破坏外键的可能性。