Gibt es eine Möglichkeit, eine Art "Ablaufzeit" für Dateneingaben in festzulegen? PostgreSQL festzulegen ? Ich denke an etwas, das EXPIRE
Redis entspricht .
Ich möchte keinen Zeitstempel speichern und dann manuell eine Art Cron- Job codieren, um zu überprüfen, welche Einträge abgelaufen sind.
Ich versuche herauszufinden, ob es in PostgreSQL eine native Funktion gibt, die diese Art von Funktionalität bietet, oder ob es sinnvoll wäre, eine solche Funktion für zukünftige Versionen anzufordern.
database
postgresql
ttl
Pensierinmusica
quelle
quelle
Antworten:
Es gibt keine integrierte Ablauffunktion. Wenn Sie jedoch Felder automatisch ablaufen lassen und die Logik in Ihrer Datenbank enthalten möchten (und somit keine externe Abhängigkeit wie bei einem Cron-Job), können Sie jederzeit einen Trigger schreiben. Unten finden Sie ein Beispiel für einen Trigger, der Zeilen aus einer Tabelle löscht, deren Zeitstempel älter als 1 Minute ist. Es wird immer dann ausgeführt, wenn eine neue Zeile in dieselbe Tabelle eingefügt wird. Sie können den Auslöser natürlich so einstellen, dass er unter anderen Bedingungen und bei Bedarf für verschiedene Ablaufdaten ausgeführt wird. Ich habe die folgende Website als Grundlage dafür verwendet: http://www.the-art-of-web.com/sql/trigger-delete-old/
quelle
Nein, es gibt keine solche Funktion.
Ich kann nicht sehen, was es mehr tut als entweder (1) nur ein "abgelaufener" Zeitstempel oder (2) Zeitstempel + Cron-Job / pgAgent.
Es klingt nicht nach einer allgemeinen Funktion, die dem Kern hinzugefügt wird. Sie können ganz einfach eine Erweiterung codieren , um diese Art von Dingen zu handhaben, entweder mit einem Häkchen, das von einem Cron-Job oder einem Hintergrund-Worker- Prozess aufgerufen wird.
Ich sehe nichts auf pgxn , also gab es vermutlich noch keine große Nachfrage danach.
quelle