¿Hay alguna forma de establecer algún tipo de tiempo de "caducidad" en las entradas de datos en PostgreSQL ? Estoy pensando en algo equivalente a EXPIRE
en Redis .
No estoy buscando almacenar una marca de tiempo y luego codificar manualmente algún tipo de trabajo cron para verificar qué entradas han expirado.
Estoy tratando de averiguar si hay alguna característica nativa en PostgreSQL que proporcione este tipo de funcionalidad, o si tendría sentido solicitar dicha característica para futuras versiones.
database
postgresql
ttl
Pensierinmusica
fuente
fuente
Respuestas:
No hay una función de caducidad incorporada, pero si su objetivo es caducar automáticamente los campos y tener la lógica contenida dentro de su base de datos (y, por lo tanto, no hay dependencia externa como un trabajo cron), entonces siempre puede escribir un disparador. A continuación, se muestra un ejemplo de un desencadenador que elimina filas de una tabla que tienen una marca de tiempo anterior a 1 minuto. Se ejecuta cada vez que se inserta una nueva fila en esa misma tabla. Obviamente, puede configurar el disparador para que se ejecute en otras condiciones y para varias fechas de vencimiento según sea necesario. Utilicé el siguiente sitio web como base para esto: http://www.the-art-of-web.com/sql/trigger-delete-old/
fuente
No. No existe tal característica.
No puedo ver lo que hace más que (1) solo una marca de tiempo "expirada" o (2) marca de tiempo + cron-job / pgAgent.
No suena como una característica general que se agregaría al núcleo. Podría simplemente codificar una extensión para manejar este tipo de cosas, ya sea con un tick llamado desde un cron-job o tal vez un proceso de background-worker .
No veo nada en pgxn , por lo que presumiblemente aún no ha habido mucha demanda.
fuente