Есть ли способ установить какое-то время «истечения» для записей данных в PostgreSQL ? Я думаю о чем-то эквивалентном EXPIRE
Redis .
Я не хочу хранить метку времени, а затем вручную кодировать какое-то задание cron, чтобы проверить, какие записи истекли.
Я пытаюсь выяснить, есть ли в PostgreSQL какая-либо встроенная функция, которая обеспечивала бы такую функциональность, или имеет смысл запросить такую функцию для будущих выпусков.
database
postgresql
ttl
Pensierinmusica
источник
источник
Ответы:
Нет встроенной функции истечения срока действия, но если ваша цель - автоматически истечь поля и иметь логику, содержащуюся в вашей базе данных (и, следовательно, не иметь внешней зависимости, такой как задание cron), вы всегда можете написать триггер. Ниже приведен пример триггера, который удаляет строки из таблицы с отметкой времени старше 1 минуты. Он выполняется всякий раз, когда в ту же таблицу вставляется новая строка. Очевидно, вы можете настроить триггер на выполнение при других условиях и для различных дат истечения срока, если это необходимо. За основу я взял следующий веб-сайт: http://www.the-art-of-web.com/sql/trigger-delete-old/
источник
Нет. Такой функции нет.
Я не вижу, что он делает больше, чем (1) просто отметка времени с истекшим сроком действия или (2) отметка времени + cron-job / pgAgent.
Это не похоже на общую функцию, которую можно было бы добавить в ядро. Вы могли бы довольно просто закодировать расширение для обработки такого рода вещей, используя либо галочку, вызываемую из задания cron, либо, возможно, фонового рабочего процесса.
Я ничего не вижу на pgxn , так что, по- видимому , на него пока не было большого спроса.
источник