![]() | |
![]() |
| | Thread Tools | Display Modes |
#1
| |||
| |||
|
#2
| |||
| |||
|
|
Imagine some online system, based on PgSql. There are 'many' parts which depends on each other. I will give small example, but instead of simple table imagine changing tenths various tables (editing). So, 'change table A' can be work for hours. There are tables tableA and tableB. Changes are made by thin client. If you change tableA, you have to also change tableB to 'finish' operation. Between starting changing tableA until tableB is finished, data are 'not valid'. Record may be changes, deleted, inserted, whatever. Is there any simple way, how to create 'transactions' over database connections ? These relations are really complex in real live and doesn't fit table foundaries, so, it is basically not realistic to make it on application layer and need to be done somehow on DB layer.... The best solution should be possibility to 'begin' transaction, 'store' somehow on server, and next time, instead of begin new transaction return to stored one. Transactions solves all these problems, but they don't work across various/multiple connections.... Any ideas/references please ? |
#3
| |||
| |||
|
|
You probably should look at the documentation for this. http://www.postgresql.org/docs/curre...sql-begin.html PostgreSQL supports _exactly_ this notion, in exactly the way you describe. But this is normal 'transaction' - and I didn't find way, how can I 'store' |
|
ray (AT) unreal64 (DOT) net ("Lada 'Ray' Lostak") writes: Imagine some online system, based on PgSql. There are 'many' parts which depends on each other. I will give small example, but instead of simple table imagine changing tenths various tables (editing). So, 'change table A' can be work for hours. There are tables tableA and tableB. Changes are made by thin client. If you change tableA, you have to also change tableB to 'finish' operation. Between starting changing tableA until tableB is finished, data are 'not valid'. Record may be changes, deleted, inserted, whatever. Is there any simple way, how to create 'transactions' over database connections ? These relations are really complex in real live and doesn't fit table foundaries, so, it is basically not realistic to make it on application layer and need to be done somehow on DB layer.... The best solution should be possibility to 'begin' transaction, 'store' somehow on server, and next time, instead of begin new transaction return to stored one. Transactions solves all these problems, but they don't work across various/multiple connections.... Any ideas/references please ? You probably should look at the documentation for this. http://www.postgresql.org/docs/curre...sql-begin.html PostgreSQL supports _exactly_ this notion, in exactly the way you describe. If you need to have multiple transactions active at once, you will just need to establish multiple connections. -- let name="cbbrowne" and tld="cbbrowne.com" in String.concat "@" [name;tld];; http://www.ntlug.org/~cbbrowne/linuxxian.html A VAX is virtually a computer, but not quite. ---------------------------(end of broadcast)--------------------------- TIP 5: Have you checked our extensive FAQ? http://www.postgresql.org/docs/faqs/FAQ.html |
#4
| |||
| |||
|
|
But this is normal 'transaction' - and I didn't find way, how can I 'store' transaction to disc storage and 'reopen' later. |
![]() |
| Thread Tools | |
| Display Modes | |
| |