Existe alguma maneira de definir algum tipo de tempo de "expiração" nas entradas de dados no PostgreSQL ? Estou pensando em algo equivalente ao EXPIRE
Redis .
Não estou procurando armazenar um carimbo de data / hora e, em seguida, codificar manualmente algum tipo de cron job para verificar quais entradas expiraram.
Estou tentando descobrir se existe algum recurso nativo no PostgreSQL que forneça esse tipo de funcionalidade, ou se faria sentido solicitar esse recurso para versões futuras.
database
postgresql
ttl
Pensierinmusica
fonte
fonte
Respostas:
Não há nenhum recurso de expiração embutido, mas se seu objetivo é expirar campos automaticamente e ter a lógica contida em seu banco de dados (e, portanto, nenhuma dependência externa como um cron job), então você sempre pode escrever um gatilho. Abaixo está um exemplo de um gatilho que exclui linhas de uma tabela com um carimbo de data / hora com mais de 1 minuto. Ele é executado sempre que uma nova linha é inserida na mesma tabela. Obviamente, você pode definir o gatilho para executar em outras condições e para várias datas de expiração, conforme necessário. Usei o seguinte site como base para isso: http://www.the-art-of-web.com/sql/trigger-delete-old/
fonte
Não. Esse recurso não existe.
Não consigo ver o que ele faz mais do que (1) apenas um carimbo de data / hora "expirado" ou (2) carimbo de data / hora + cron-job / pgAgent.
Não parece um recurso geral que seria adicionado ao núcleo. Você poderia simplesmente codificar uma extensão para lidar com esse tipo de coisa, com um tick chamado de um cron-job ou talvez um processo de trabalho em segundo plano .
Não vejo nada no pgxn , então presumivelmente ainda não houve muita demanda por ele.
fonte