2014-02-03 3 views
2

Я использую oracle 11g. я столкнулся с созданием последовательностей, поднял вопросПоследовательности Oracle - Можем ли мы откатить последовательность

Можно ли откатить последовательность с помощью java?

Если мы можем, предложите мне предложение?

+0

Зачем вам это нужно? –

+0

см. На мой комментарий для @Guntram ответ –

+0

Если вы не можете определить фактическую проблему, не пытайтесь найти решение. –

ответ

5

Да, используйте alter sequence. См. http://docs.oracle.com/cd/B19306_01/server.102/b14200/statements_2011.htm.

Но обратите внимание, что для этого нет реального использования. Если вы не удалите все записи из своих таблиц, которые используют вашу последовательность, вы получите ошибки при использовании последовательности для создания уникальных идентификаторов.

И вы будете всегда имеют «дыры» в ваших сгенерированных числах, нет смысла пытаться сделать идентификаторы, созданные последовательностями непрерывными. Представьте себе, что пользователь делает вставку, пользователь B делает другую вставку, пользователь B совершает, пользователь A откат. Номер последовательности, в которой используется A, будет потерян, так как B использовал более высокий.

+0

В моем случае у меня есть 5 операторов вставки с использованием той же последовательности. я пытался откатить последовательность, даже если одна из них заканчивается ошибкой –

+5

И что произойдет, если другой пользователь выполнит один и тот же код, создаст еще 5 порядковых номеров, а * затем * первый заканчивается ошибкой? Не пытайтесь создавать непрерывные идентификаторы. Это просто не сработает. Вам нужны уникальные идентификаторы, которые гарантируют последовательности, но нет смысла пытаться убедиться, что каждый отдельный идентификатор используется. –

+1

@sankrish Вопрос по-прежнему стоит - * почему * вам нужно отменить последовательность в этом случае? Последовательности отлично подходят для генерации уникальных идентификаторов, они не так хороши для генерации последовательных чисел без «дыр» в них. –

Смежные вопросы