как изменить порядок пропуска номеров в sql - PullRequest
0 голосов
/ 06 июня 2019

Когда я регистрирую баннер, я должен установить порядок сортировки баннера в поле выбора (то есть длина списка баннеров + 1)

если я зарегистрировал 5 баннеров (1, 2, 3, 4, 5), то после удаления 2 баннеров (2, 4) осталось 3 баннера (1, 3, 5). и я должен изменить порядок в 1, 2, 3 в sql после удаления.

потому что, когда я обновляю баннер, порядок сортировки которого равен 5, он не может отобразить это, потому что поле выбора установлено на длину списка баннеров +1

и когда я хочу зарегистрировать новый баннер в конце (номер 4), он не может быть в конце, потому что 5 уже существует.

У меня нет идеи попробовать это

1 Ответ

0 голосов
/ 06 июня 2019

Вам не нужно обновлять столбец, вам нужна последовательность

Создайте sequence для обработки идентификаторов.Используйте последовательность nextval при вставке новых строк.

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

Тогда ваша вставка будет:

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

Это помогает предотвратить взлом внешних ключей.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...