I'm not looking for point-in-time backups but some kind of "time machine" read-only functionality.

For example when running a SELECT query I would like to tell the database to run it on the data as it was, say, 1 month ago. Snapshots granularity could go from on-demand to taking a snapshot after each transaction.

Ideally it would be possible also to purge data on-demand, something like "stop storing snapshots older than 10 days".

closed as off-topic by mustaccio, James Anderson, LowlyDBA, SqlWorldWide, hot2use Sep 12 '17 at 5:17

This question appears to be off-topic. The users who voted to close gave this specific reason:

  • "Shopping list question - questions about which tool, library, product or resource you should use are off-topic here because they quickly become obsolete and often are just about the preferences of the answerer. If you have an issue with or a question about a specific tool, please revise your question to conform to that scope." – mustaccio, James Anderson, LowlyDBA, SqlWorldWide, hot2use
If this question can be reworded to fit the rules in the help center, please edit the question.

  • Not open source, but free: DB2 Express-C supports temporal queries – a_horse_with_no_name Sep 11 '17 at 13:12
  • Oracle has flashback (ooooh... bright, shiny buzzword - must be good :-) ) – Vérace Sep 11 '17 at 14:43

Arkhipov's extension for PostgreSQL enables Temporal Tables.


Here's a decent guide for using it: http://clarkdave.net/2015/02/historical-records-with-postgresql-and-temporal-tables-and-sql-2011/

PostgreSQL is uniquely suited to this task due to the way it implements row updates.

Not the answer you're looking for? Browse other questions tagged or ask your own question.