Подтвердить что ты не робот

Что такое последовательность (база данных)? Когда нам это понадобится?

Зачем нам создавать последовательность, даже если есть первичный ключ?

4b9b3361

Ответ 1

Первичный ключ - это столбец в таблице.

Первичный ключ нуждается в уникальном значении, которое должно происходить откуда-то.

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

Другие продукты базы данных поддерживают столбцы, которые автоматически инициализируются с добавочным числом.

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

Ответ 2

Первичный ключ (в технических терминах) - это просто индекс, который обеспечивает уникальность (а также ускоряет выполнение запросов). Там есть семантическая информация, которая является "ключом" для сущности, которую описывает строка, но что она.

Последовательность - это совершенно другая сущность; он существует отдельно от таблиц (например, хранимая процедура) и может быть вызвана для получения последовательных чисел.

Эти два часто используются вместе, чтобы генерировать автоматические первичные ключи для объектов, которые не имеют разумных "родных" ключей. Но это две отдельные концепции; вы можете иметь таблицы, в которых первичный ключ явно заполняется во время вставки, и вы можете иметь последовательности, которые используются для заполнения столбцов, отличных от PK (или даже используемых императивно во время хранимой процедуры, отличной от вставки записей).

Ответ 3

Последовательность позволит вам заполнить первичный ключ уникальным серийным номером.