Когда я должен использовать CYCLE в последовательности?
Я использую последовательности в базе данных PostgreSQL для вставки строк в таблицы.
При создании последовательности я никогда не использовал CYCLE
вариант на них. Я имею в виду, что они могут генерировать довольно большие числа (порядка 2^63, насколько я помню), и я не понимаю, почему я хотел бы, чтобы последовательность возвращалась к нулю. Итак, мой вопрос:
Когда я должен использовать CYCLE
при создании последовательности?
У вас есть пример, где это имеет смысл?
1 ответ
Кажется, последовательность может использовать CYCLE
для других целей, а не для генерации первичного ключа.
Это в сценариях, где уникальность его значения не требуется; на самом деле все наоборот, когда ожидается, что значения вернутся назад и повторятся через некоторое время.
Например:
- При генерации чисел, которые должны вернуться к начальному значению и повторить себя в какой-то момент по любой причине (например, реализовать игру "Бинго").
- Когда последовательность является временным идентификатором, который будет действовать в течение короткого периода времени и будет уникальным в течение своей жизни.
- Когда поле маленькое - или может принимать ограниченное количество значений - и не имеет значения, повторяются ли они.
- Когда в сущности есть другое поле, которое будет его идентифицировать, и значение последовательности будет использоваться для чего-то другого.
- Когда у сущности есть составной уникальный ключ, а значение последовательности является только его частью.
- При использовании значения последовательности для генерации равномерного распределения значений на большом наборе, хотя это вряд ли случайное присвоение значений.
- Любая другая генерация циклического числа.