Si scopre che la soluzione è molto più semplice di quanto si pensasse inizialmente, grazie a di Postgres Funzioni di informazioni di sistema .
txid_current()
può essere utilizzato in un trigger per assegnare larowversion
di un record .txid_snapshot_min(txid_current_snapshot())
può essere utilizzato per ottenere la transazione attiva minima nello stesso modo in cui un utente di SQL Server potrebbe utilizzaremin_active_rowversion()
.
La parte migliore è che questi sono a 64 bit, permanenti, non soggetti all'aspirazione:
Postgres è davvero fantastico.