Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Oracle Новый топик    Ответить
 Сбросить для sequence nextval до 1 только путём пересоздания или alter sequence  [new]
AdamAry
Member

Откуда:
Сообщений: 117
Сбросить для sequence nextval до 1 только путём пересоздания или есть возможность при помощи alter sequence ?
4 дек 18, 08:04    [21752562]     Ответить | Цитировать Сообщить модератору
 Re: Сбросить для sequence nextval до 1 только путём пересоздания или alter sequence  [new]
sharkerr
Member

Откуда:
Сообщений: 39
AdamAry,

procedure reset_seq( p_seq_name in varchar2 )
is
    l_val number;
begin
    execute immediate
    'select ' || p_seq_name || '.nextval from dual' INTO l_val;
    execute immediate
    'alter sequence ' || p_seq_name || ' increment by -' || l_val || ' minvalue 0';
    execute immediate
    'select ' || p_seq_name || '.nextval from dual' INTO l_val;
    execute immediate
    'alter sequence ' || p_seq_name || ' increment by 1 minvalue 0';
end;
4 дек 18, 08:54    [21752577]     Ответить | Цитировать Сообщить модератору
 Re: Сбросить для sequence nextval до 1 только путём пересоздания или alter sequence  [new]
Elic
Member

Откуда: 1984. Выбраковка финно-угром продолжается. КЯЗ
Сообщений: 28467
sharkerr
procedure reset_seq
Работает только в идеальном односессионном мире.
4 дек 18, 09:44    [21752617]     Ответить | Цитировать Сообщить модератору
 Re: Сбросить для sequence nextval до 1 только путём пересоздания или alter sequence  [new]
sharkerr
Member

Откуда:
Сообщений: 39
Elic
sharkerr
procedure reset_seq
Работает только в идеальном односессионном мире.


А для чего нужно сбрасывать сиквенсы из разных сессий? Разовая же операция, из одной сессии.
4 дек 18, 09:52    [21752620]     Ответить | Цитировать Сообщить модератору
 Re: Сбросить для sequence nextval до 1 только путём пересоздания или alter sequence  [new]
123йй
Member

Откуда:
Сообщений: 1445
sharkerr

А для чего нужно сбрасывать получать сиквенсы из разных сессий? Разовая же операция, из одной сессии.

так понятнее ?
4 дек 18, 09:57    [21752626]     Ответить | Цитировать Сообщить модератору
 Re: Сбросить для sequence nextval до 1 только путём пересоздания или alter sequence  [new]
Stax
Member

Откуда: Ukraine,Lviv
Сообщений: 1413
AdamAry,

при пересоздании зависимые хранимые обекты выпадут в инвалид + права

зы
алтерить надо акуратненько, напр не всегда increment by 1

....
stax
4 дек 18, 10:14    [21752639]     Ответить | Цитировать Сообщить модератору
 Re: Сбросить для sequence nextval до 1 только путём пересоздания или alter sequence  [new]
Vint
Member

Откуда: Таган-москва
Сообщений: 4533
а еще кэш и вообще в сиквенсах есть цикл.
4 дек 18, 13:10    [21752823]     Ответить | Цитировать Сообщить модератору
 Re: Сбросить для sequence nextval до 1 только путём пересоздания или alter sequence  [new]
-2-
Member

Откуда:
Сообщений: 14079
Elic
sharkerr
procedure reset_seq
Работает только в идеальном односессионном мире.
Сам принцип изменения некствала взад применим как раз в таком идеальном мире.
4 дек 18, 13:24    [21752842]     Ответить | Цитировать Сообщить модератору
 Re: Сбросить для sequence nextval до 1 только путём пересоздания или alter sequence  [new]
andrey_anonymous
Member

Откуда: Москва
Сообщений: 16897
-2-
Elic
пропущено...
Работает только в идеальном односессионном мире.
Сам принцип изменения некствала взад применим как раз в таком идеальном мире.

Сама постановка задачи о сбросе сиквенса в 1 обычно свидетельствует о нерабочем режиме вроде отпочкования чистой схемы под новый проект.
4 дек 18, 16:17    [21753264]     Ответить | Цитировать Сообщить модератору
 Re: Сбросить для sequence nextval до 1 только путём пересоздания или alter sequence  [new]
Stax
Member

Откуда: Ukraine,Lviv
Сообщений: 1413
andrey_anonymous
-2-
пропущено...
Сам принцип изменения некствала взад применим как раз в таком идеальном мире.

Сама постановка задачи о сбросе сиквенса в 1 обычно свидетельствует о нерабочем режиме вроде отпочкования чистой схемы под новый проект.

не обязательно
напр начало дня, месяца, квартала, года, согласно новой инструкции и тд

.....
stax
4 дек 18, 16:37    [21753313]     Ответить | Цитировать Сообщить модератору
 Re: Сбросить для sequence nextval до 1 только путём пересоздания или alter sequence  [new]
-2-
Member

Откуда:
Сообщений: 14079
andrey_anonymous
-2-
Сам принцип изменения некствала взад применим как раз в таком идеальном мире.

Сама постановка задачи о сбросе сиквенса в 1 обычно свидетельствует о нерабочем режиме вроде отпочкования чистой схемы под новый проект.
При "отпочковывании" можно и пересоздать сиквенсы, не критично. Но, с другой стороны, зачем?
И поскольку автор не догадался, как делать альтерами, есть основания подозревать в строительстве велосипеда. Но может просто уперлись в размерность ключа. В этом случае достаточно почистить старые данные, задать maxvaluе и cycle. Когда-нибудь оно само перепрыгнет в начало.
4 дек 18, 16:52    [21753347]     Ответить | Цитировать Сообщить модератору
 Re: Сбросить для sequence nextval до 1 только путём пересоздания или alter sequence  [new]
andrey_anonymous
Member

Откуда: Москва
Сообщений: 16897
Stax
не обязательно
напр начало дня, месяца, квартала, года, согласно новой инструкции и тд

Смена/закрытие/открытие общесистемного рабочего/отчетного/какого-там-еще периода - обычно тоже в специальном технологическом режиме происходит, если только система изначально не спроектирована под подобную операцию в онлайне.
Однако второй вариант не соответствует постановке вопроса.

-2-
При "отпочковывании" можно и пересоздать сиквенсы, не критично. Но, с другой стороны, зачем?
Пересоздание может приводить необходимости перераздачи грантов, откуда рукой подать до подхода "новая схема создается исключительно из скриптов SVN/VSS/...", а это уже иной технологический уклад :)
Зачем - вопрос философский.
Иногда люди просто хотят начать "с чистого листа", иногда - сделать копию системы для соседнего отдела :)
-2-
Но может просто уперлись в размерность ключа. В этом случае достаточно почистить старые данные, задать maxvaluе и cycle. Когда-нибудь оно само перепрыгнет в начало.

Угу. Если, конечно, унаследованный код не закладывается на монотонно возрастающее значение ключа - что довольно популярно при решении интеграционных задач среднего качества (это когда уже ушли от полного копирования, но еще не наелись проблем с выпадающими инкрементами).
4 дек 18, 17:33    [21753454]     Ответить | Цитировать Сообщить модератору
 Re: Сбросить для sequence nextval до 1 только путём пересоздания или alter sequence  [new]
Stax
Member

Откуда: Ukraine,Lviv
Сообщений: 1413
andrey_anonymous
Смена/закрытие/открытие общесистемного рабочего/отчетного/какого-там-еще периода - обычно тоже в специальном технологическом режиме происходит, если только система изначально не спроектирована под подобную операцию в онлайне.


конечно режим спроектирован для работы "в идеальном односессионном мире"

....
stax
4 дек 18, 18:05    [21753506]     Ответить | Цитировать Сообщить модератору
 Re: Сбросить для sequence nextval до 1 только путём пересоздания или alter sequence  [new]
Viewer
Member

Откуда: Самара
Сообщений: 5230
AdamAry
при помощи alter sequence ?

20700153
5 дек 18, 09:02    [21753930]     Ответить | Цитировать Сообщить модератору
 Re: Сбросить для sequence nextval до 1 только путём пересоздания или alter sequence  [new]
AlexFF__|
Member

Откуда:
Сообщений: 2814
Приятно зайти и обнаружить, что любимый скуль ничуть не изменился =)
sharkerr первым ответом сказал как делать
Elic вторым, когда делать

А потом - срач, не относящийся к делу )))
5 дек 18, 13:56    [21754338]     Ответить | Цитировать Сообщить модератору
 Re: Сбросить для sequence nextval до 1 только путём пересоздания или alter sequence  [new]
Viewer
Member

Откуда: Самара
Сообщений: 5230
AlexFF__|
Приятно зайти и обнаружить, что любимый скуль ничуть не изменился =)

"Как и мой..
AlexFF__|
.. срач, не относящийся к делу )))"
5 дек 18, 18:08    [21754806]     Ответить | Цитировать Сообщить модератору
Все форумы / Oracle Ответить