PostgreSQL: как заставить функцию хранить свое последнее возвращаемое значение? - PullRequest
0 голосов
/ 02 мая 2019

Я хочу реализовать функцию smooth_random, которая возвращает значение, которое отличается от предыдущего не более чем на определенный шаг.Можно ли сохранить последнее возвращенное значение функции?

1 Ответ

1 голос
/ 02 мая 2019

Лучший способ сохранить данные в базе данных - это таблица. Таким образом, вы можете в принципе иметь таблицу с одной строкой, в которой хранится значение.

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

Использование UPDATE ... RETURNING для обновления и извлечения сохраненного значения из таблицы приведет к сериализации доступа через блокировку строки, поэтому один параллельный вызов должен будет ждать до завершения предыдущего.

...