PostgreSQL функция setseed

В этом учебном пособии вы узнаете, как использовать PostgreSQL функцию setseed с синтаксисом и примерами.

Описание

Функция setseed PostgreSQL может использоваться для установки начального числа при следующем вызове функции random. Если вы не вызываете setseed, PostgreSQL будет использовать свое собственное значение seed. Это может или не может быть действительно random.
Если вы установили начальное значение, вызвав функцию setseed, тогда функция random вернет повторяемую последовательность случайных чисел, полученную из начального числа.
Подсказка: Функция setseed может быть очень полезна в ситуациях, когда вы хотите убедиться, что PostgreSQL использует действительно случайное начальное число.

Синтаксис

Синтаксис функции setseed в PostgreSQL:

setseed( seed )

Параметры или аргументы

seed
Значение от 1,0 до -1,0 включительно, которое используется для предоставления начального значения для следующего вызова функции random

Примечание

  • Функция setseed не возвращает значение. Это просто функция, используемая для подставления функции random.
  • Смотрите также функцию random.

Применение

Функция setseed может использоваться в следующих версиях PostgreSQL:

  • PostgreSQL 11, PostgreSQL 10, PostgreSQL 9.6, PostgreSQL 9.5, PostgreSQL 9.4, PostgreSQL 9.3, PostgreSQL 9.2, PostgreSQL 9.1, PostgreSQL 9.0, PostgreSQL 8.4

Пример

Рассмотрим, как использовать функцию setseed в PostgreSQL для заполнения функции random.

Вызов random функции без setseed

Если вы не вызываете функцию setseed до random функции, PostgreSQL предоставит собственное начальное число. Это значение не будет вам известно.
Например:

Каждый раз, когда вы выполняете функцию random, вы получаете новое случайное число. Возвращенные вами случайные числа будут отличаться от приведенного выше примера, потому что ваши setseed будут отличаться от выполнения setseed в этом примере.

Вызов random функции с setseed

Теперь давайте посмотрим, что происходит, когда мы используем функцию setseed перед вызовом random функции.
Например давайте установим начальное значение на 0,5, а затем вызовем функцию random 3 раза:

В этом примере мы вызываем setseed один раз, а затем 3 раза функцию random. Делая это, мы получаем предсказуемые случайные числа. С setseed 0,5 вы всегда получите 0.550025727134198 в качестве первого случайного числа, 0.550025727134198 в качестве второго случайного числа и 0.607926093041897 в качестве третьего случайного числа

Изменение setseed между вызовами функции random

Иногда желательно, чтобы никогда не было предсказуемых результатов. Это может быть достигнуто путем вызова setseed с различными значениями между вызовами функции random.
Например:

При вызове setseed между вызовами функции random, случайные числа не будут предсказуемыми.