Apakah ada cara untuk mengatur waktu "kedaluwarsa" pada entri data di PostgreSQL ? Saya sedang memikirkan sesuatu yang setara dengan EXPIRE
di Redis .
Saya tidak ingin menyimpan stempel waktu dan kemudian secara manual membuat kode tugas cron untuk memeriksa entri apa yang telah kedaluwarsa.
Saya mencoba mencari tahu apakah ada fitur asli di PostgreSQL yang akan menyediakan fungsionalitas semacam ini, atau apakah masuk akal untuk meminta fitur semacam itu untuk rilis mendatang.
database
postgresql
ttl
Pensierinmusica
sumber
sumber
Jawaban:
Tidak ada fitur kedaluwarsa bawaan tetapi jika tujuan Anda adalah secara otomatis kedaluwarsa bidang dan memiliki logika yang terkandung dalam database Anda (dan dengan demikian tidak ada ketergantungan luar seperti pekerjaan cron) maka Anda selalu dapat menulis pemicu. Di bawah ini adalah contoh pemicu yang menghapus baris dari tabel yang memiliki stempel waktu lebih dari 1 menit. Ini dijalankan setiap kali baris baru dimasukkan ke dalam tabel yang sama. Anda jelas dapat mengatur pemicu untuk dieksekusi pada kondisi lain dan untuk berbagai tanggal kedaluwarsa sesuai kebutuhan. Saya menggunakan situs web berikut sebagai dasar untuk ini: http://www.the-art-of-web.com/sql/trigger-delete-old/
sumber
Tidak. Tidak ada fitur seperti itu.
Saya tidak dapat melihat apa yang dilakukannya lebih dari (1) hanya stempel waktu "kedaluwarsa" atau (2) stempel waktu + cron-job / pgAgent.
Ini tidak terdengar seperti fitur umum yang akan ditambahkan ke inti. Anda cukup membuat kode ekstensi untuk menangani hal semacam ini, baik dengan tanda centang yang dipanggil dari cron-job atau mungkin proses background-worker .
Saya tidak melihat apa-apa di pgxn , jadi sepertinya belum banyak permintaan untuk itu.
sumber