Existe-t-il un moyen de définir une sorte de délai "d'expiration" sur les entrées de données dans PostgreSQL ? Je pense à quelque chose d'équivalent EXPIRE
dans Redis .
Je ne cherche pas à stocker un horodatage, puis à coder manuellement une sorte de travail cron pour vérifier quelles entrées ont expiré.
J'essaie de savoir s'il existe une fonctionnalité native dans PostgreSQL qui fournirait ce type de fonctionnalité, ou s'il serait logique de demander une telle fonctionnalité pour les versions futures.
database
postgresql
ttl
Pensierinmusica
la source
la source
Réponses:
Il n'y a pas de fonction d'expiration intégrée, mais si votre objectif est d'expirer automatiquement les champs et d'avoir la logique contenue dans votre base de données (et donc pas de dépendance extérieure comme une tâche cron), vous pouvez toujours écrire un déclencheur. Vous trouverez ci-dessous un exemple de déclencheur qui supprime les lignes d'une table dont l'horodatage est supérieur à 1 minute. Il est exécuté chaque fois qu'une nouvelle ligne est insérée dans cette même table. Vous pouvez évidemment définir le déclencheur pour qu'il s'exécute à d'autres conditions et pour différentes dates d'expiration selon les besoins. J'ai utilisé le site Web suivant comme base pour cela: http://www.the-art-of-web.com/sql/trigger-delete-old/
la source
Non, une telle fonctionnalité n'existe pas.
Je ne peux pas voir ce qu'il fait plus que (1) juste un horodatage "expiré" ou (2) horodatage + cron-job / pgAgent.
Cela ne ressemble pas à une fonctionnalité générale qui serait ajoutée au noyau. Vous pouvez tout simplement coder une extension pour gérer ce genre de choses, avec une coche appelée à partir d'un travail cron ou peut-être un processus de travail en arrière-plan .
Je ne vois rien sur pgxn , donc il n'y a probablement pas encore beaucoup de demande pour cela.
la source