Сброс последовательности PostgreSQL в триггерной функции
У меня есть стол counter_registry
это имеет столбец priority_number
со значением по умолчанию от nextval('counter_registry_priority_number_seq'::regclass)
, Моя триггерная функция (которая запускается перед вставкой) имеет фрагмент, который сбрасывает последовательность, когда на указанную дату нет транзакций:
-- Restart the priority number sequence if current day is a new day
IF (SELECT CASE WHEN NOT EXISTS ( SELECT * FROM counter_registry WHERE transaction_date = now()::date ) THEN true ELSE false END) = true
THEN PERFORM setval('counter_registry_priority_number_seq', 1);
END IF;
Когда я вставляю новую запись в таблицу в новый день из клиентского приложения, priority_number
Столбец получает свое значение из следующего значения последовательности до сброса, даже если он уже был сброшен. Последующие вставки следуют за новой последовательностью сброса, начиная с 1.
Как правильно сбросить последовательность, чтобы после такого, когда я вставляю первый раз, я получал следующее значение измененной последовательности?