Как предотвратить увеличение идентификатора и использовать вместо него первый доступный неиспользуемый идентификатор? - PullRequest
1 голос
/ 13 марта 2020

Когда я удаляю элемент из моей таблицы, я хочу, чтобы при добавлении следующего элемента в эту таблицу этот элемент использовал первый доступный неиспользуемый идентификатор. Как я могу достичь этого? Когда я удалил все Предметы и создал новые, это произошло:

enter image description here

В этом случае было бы намного лучше, если бы Item Id 21 был 1.

Ответы [ 2 ]

0 голосов
/ 13 марта 2020

Я бы не рекомендовал изменять (как выглядит) столбец первичного ключа. В качестве примера побочных эффектов: если другие объекты ссылаются на основной столбец, это приведет к сбою или нарушению отношений. Кроме того, вам, возможно, потребуется изменить нумерацию всей таблицы для каждого delete, который выполняется.

Если вы хотите динамически c число с автоинкрементом, вы можете использовать row_number() в представлении:

create view myview as
select
    row_number() over(order by item_id) item_id,
    title,
    description
from mytable 

Затем вы можете запросить представление вместо таблицы, которая дает вам всегда актуальный номер приращения.

0 голосов
/ 13 марта 2020

Вы хотите сказать, что хотите изменить идентификатор Autoincerment обратно на 1? Я верю, что это решит проблему Изменение / сброс первичного ключа с автоматическим приращением

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