Последовательность отката - PullRequest
2 голосов
/ 25 мая 2011

У меня есть таблица, где первичный ключ заполняется с использованием последовательности.Текущая версия:

CREATE SEQUENCE xxxx.SEQ_xyz
START WITH 135
MAXVALUE 999999999999999999999999999
MINVALUE 1
NOCYCLE
NOCACHE
ORDER;

Существует приложение, которое удаляет некоторые строки из таблицы.Когда это происходит, я хочу получить следующий доступный номер вместо того, что показывает последовательность.Скажем, я вставляю: 136 x 137 y 138 z

, поэтому последовательность теперь равна 139. Если я удаляю 136, 137, 138, я хочу, чтобы последовательность вернулась к 136 вместо того, чтобы остаться на 139. Возможно ли это??

спасибо заранее.

1 Ответ

2 голосов
/ 25 мая 2011

Ответ на ваш вопрос: напишите перед удалением в каждом триггере строки, который заменит последовательность на «начать с» записи, которая будет удалена.Но это создаст много проблем, как упомянул Шеннон Северанс.например, 136 удаляется, триггер заменяет старую последовательность, теперь последовательность начинается с 136. Вы сможете вставить что-то с первичным ключом как 136, но в следующий раз, когда вы попытаетесь вставить данные в таблицу, вы невозможность вставить его, так как это нарушит ограничение первичного ключа (в таблице будет 137, 138)

Я не вижу причин, по которым вам следует вернуться к ранее удаленному номеру.в вашей последовательности.Можете ли вы уточнить это?

...