Зачем нам создавать последовательность, даже если есть первичный ключ?
Что такое последовательность (база данных)? Когда нам это понадобится?
Ответ 1
Первичный ключ - это столбец в таблице.
Первичный ключ нуждается в уникальном значении, которое должно происходить откуда-то.
Последовательность является функцией некоторых продуктов базы данных, которая только создает уникальные значения. Он просто увеличивает значение и возвращает его. Особая вещь в этом: нет изоляции транзакций, поэтому несколько транзакций не могут получить одно и то же значение, приращение также не откатывается. Без последовательности базы данных очень сложно создавать уникальные инкрементные числа.
Другие продукты базы данных поддерживают столбцы, которые автоматически инициализируются с добавочным числом.
Существуют и другие способы создания уникальных значений для первичных ключей, например Guids.
Ответ 2
Первичный ключ (в технических терминах) - это просто индекс, который обеспечивает уникальность (а также ускоряет выполнение запросов). Там есть семантическая информация, которая является "ключом" для сущности, которую описывает строка, но что она.
Последовательность - это совершенно другая сущность; он существует отдельно от таблиц (например, хранимая процедура) и может быть вызвана для получения последовательных чисел.
Эти два часто используются вместе, чтобы генерировать автоматические первичные ключи для объектов, которые не имеют разумных "родных" ключей. Но это две отдельные концепции; вы можете иметь таблицы, в которых первичный ключ явно заполняется во время вставки, и вы можете иметь последовательности, которые используются для заполнения столбцов, отличных от PK (или даже используемых императивно во время хранимой процедуры, отличной от вставки записей).
Ответ 3
Последовательность позволит вам заполнить первичный ключ уникальным серийным номером.