Czy istnieje sposób na ustawienie pewnego rodzaju czasu „wygaśnięcia” wpisów danych w PostgreSQL ? Myślę o czymś równoważnym z EXPIRE
Redis .
Nie chcę przechowywać sygnatury czasowej, a następnie ręcznie kodować jakieś zadanie cron, aby sprawdzić, które wpisy wygasły.
Próbuję się dowiedzieć, czy w PostgreSQL jest jakaś natywna funkcja, która zapewniłaby tego rodzaju funkcjonalność, czy też miałoby sens żądanie takiej funkcji w przyszłych wydaniach.
database
postgresql
ttl
Pensierinmusica
źródło
źródło
Odpowiedzi:
Nie ma wbudowanej funkcji wygaśnięcia, ale jeśli Twoim celem jest automatyczne wygasanie pól i posiadanie logiki zawartej w bazie danych (a zatem brak zewnętrznych zależności, takich jak zadanie cron), zawsze możesz napisać wyzwalacz. Poniżej znajduje się przykład reguły, która usuwa wiersze z tabeli z sygnaturą czasową starszą niż 1 minuta. Jest wykonywany za każdym razem, gdy nowy wiersz zostanie wstawiony do tej samej tabeli. Możesz oczywiście ustawić wyzwalacz tak, aby był wykonywany na innych warunkach i dla różnych dat wygaśnięcia, w zależności od potrzeb. Jako podstawę posłużyłem się następującą stroną internetową: http://www.the-art-of-web.com/sql/trigger-delete-old/
źródło
Nie. Nie ma takiej funkcji.
Nie widzę, co robi bardziej niż (1) tylko znacznik czasu „wygasły” lub (2) znacznik czasu + cron-job / pgAgent.
Nie brzmi to jak ogólna funkcja, która zostanie dodana do rdzenia. Mógłbyś po prostu zakodować rozszerzenie do obsługi tego rodzaju rzeczy, albo z tikiem wywoływanym z zadania cron, albo może z procesem roboczym w tle .
Nie widzę nic na pgxn , więc prawdopodobnie nie było jeszcze na to dużego zapotrzebowania.
źródło