¿Postgres tiene alguna función para admitir registros antiguos obsoletos?
Quiero usar Postgres para iniciar sesión, como una especie de cola, donde los registros (eventos de registro) anteriores a dos semanas se eliminan automáticamente.
                    
                        postgresql
                                delete
                                queue
                                
                    
                    
                        Albahaca Bourque
fuente
                
                fuente

Respuestas:
No hay una función integrada para eliminar filas automáticamente en un régimen basado en el tiempo (que yo sepa).
Puede ejecutar un cron-job diario (usted decide) para programar
DELETEcomandos simples o usar pgAgent para tal fin.O podría usar la partición con particiones semanales que heredan de una tabla maestra , vamos a llamarlo
log. Eso haría que la eliminación fuera muy barata : solo mantenga las últimas dos semanas y elimine las particiones más antiguas.Cree una
RULEo unaTRIGGERen la tabla maestra que redirija los INSERT a la partición de la semana actual en función de la hora del sistema. Siempre inicie sesión en la tabla maestralog. Cree tablas secundarias con anticipación. Haga eso con varias semanas de anticipación para estar seguro y ejecute un trabajo cron semanal que agregue futuras tablas secundarias ...Hay ejemplos de código en el manual .
Respuesta relacionada con una función plpgsql que crea tablas automáticamente:
La solución relacionada recrea un
RULEpara redirigir INSERT. Una función de disparo podría escribir dinámicamente en la partición actual ...fuente