| From: | Rob Nikander <rob(dot)nikander(at)gmail(dot)com> |
|---|---|
| To: | pgsql-general(at)postgresql(dot)org |
| Subject: | Is the row version available in SQL? |
| Date: | 2017-06-28 14:54:14 |
| Message-ID: | 2558AA7C-1FF0-4BBC-8160-BF9DD41CCD0C@gmail.com |
| Views: | Whole Thread | Raw Message | Download mbox | Resend email |
| Thread: | |
| Lists: | pgsql-general |
Hi,
I'm reading about MVCC here: https://www.postgresql.org/docs/current/static/mvcc.html <https://www.postgresql.org/docs/current/static/mvcc.html>.
In some cases I can use these transaction isolation modes, but in other cases, I may want to manage the versions and concurrency manually. Is there a way to select the “version” of a row, or is that data hidden to ordinary SQL statements?
I’m thinking about a sequence of actions, which are logically a transaction, but start on one thread and complete later on another thread. I don’t think I can tie up a JDBC database connection for that long. I can add a `version bigint` column to my table, and the final update will look like:
update ... where id = ? and version = the_version_selected_earlier_in_a_different_thread
… and if that gets 0 rows, it can handle the conflict.
Rob
| From | Date | Subject | |
|---|---|---|---|
| Next Message | Chris Travers | 2017-06-28 15:39:20 | Re: Is the row version available in SQL? |
| Previous Message | gmb | 2017-06-28 14:28:05 | Re: CREATE TABLE & composite type |