PostgreSQL | Setiap row di PostgreSQL memiliki dua ID transaksi: creation transaction ID yang menunjukkan ID transaksi yang membuat row tersebut, serta expiration transaction ID yang menunjukkan transaksi yang membuat row tersebut kedaluwarsa. Ketika UPDATE dilakukan, PostgreSQL menciptakan row baru dan meng-expire row lama. Ini row yang sama — hanya saja berbeda versi. PostgreSQL menciptakan row versi baru hasil perubahannya tapi juga mempertahankan row versi lama yang sudah kedaluwarsa.
Jelas kan sekarang….. kenapa namanya Multi-Versioning…. Pada sistem database yang menggunakan row-level locking tidak mempertahankan versi lama dari data yang diubah, sehingga kebutuhan untuk mengkunci data muncul untuk menjaga konsistensi data. Setelah sekarang Anda tahu bagaimana PostgreSQL menciptakan versi data, Anda mungkin bertanya-tanya bagaimana PostgreSQL bisa tahu versi yang mana untuk ditampilkan….