Ответ от @ankit вполне соответствует то, что нужно, чтобы решить эту проблему, но она представляет несколько проблем и опечаток, которые я» m в этом ответе. Надеюсь, это будет полезно.
Во-первых, вы должны выбрать текущее значение old_seq:
SELECT old_seq.CURRVAL FROM dual;
Если вы получаете ORA-08002 ошибку, потому что вы должны попросить NEXTVAL первым, чтобы инициализировать последовательность. Просто выполните:
SELECT old_seq.NEXTVAL FROM dual;
, а затем снова запросить CURRVAL.
Теперь, когда у вас есть текущее значение, просто удалить старую последовательность, используя
DROP SEQUENCE old_seq;
и создать new_seq с именем, которое вы хотите с помощью
CREATE SEQUENCE new_seq START WITH <CURRVAL FROM old_seq>;
Если вы используете INCREMENT
вместо START WITH
, вы должны принять во внимание, что приращение будет применяться к каждому запросу для значения из последовательности.Вам нужно будет создать последовательность, а затем сбросить инкремент до 1. Использование START WITH
позволяет избежать этой проблемы.
Какая БД вы используете ?? –
Я использую 11g db – Anu