Когда я должен использовать CYCLE в последовательности?

Я использую последовательности в базе данных PostgreSQL для вставки строк в таблицы.

При создании последовательности я никогда не использовал CYCLE вариант на них. Я имею в виду, что они могут генерировать довольно большие числа (порядка 2^63, насколько я помню), и я не понимаю, почему я хотел бы, чтобы последовательность возвращалась к нулю. Итак, мой вопрос:

Когда я должен использовать CYCLE при создании последовательности?

У вас есть пример, где это имеет смысл?

1 ответ

Кажется, последовательность может использовать CYCLE для других целей, а не для генерации первичного ключа.

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

Например:

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