Re: A transaction in transaction? Possible?
От | Andrei Bintintan |
---|---|
Тема | Re: A transaction in transaction? Possible? |
Дата | |
Msg-id | 019801c4c711$57185380$0b00a8c0@forge обсуждение исходный текст |
Ответ на | Re: A transaction in transaction? Possible? (Achilleus Mantzios <achill@matrix.gatewaynet.com>) |
Список | pgsql-sql |
Okay, I see you're speaking about pgsql 8.0 What about 7.4? Andy. ----- Original Message ----- From: "Achilleus Mantzios" <achill@matrix.gatewaynet.com> To: "Michael Fuhr" <mike@fuhr.org> Cc: "Riccardo G. Facchini" <abief_ag_-postgresql@yahoo.com>; <pgsql-sql@postgresql.org>; "Theodore Petrosky" <tedpet5@yahoo.com>; "Andrei Bintintan" <klodoma@ar-sd.net>; "sad" <sad@bankir.ru> Sent: Wednesday, November 10, 2004 12:58 PM Subject: Re: [SQL] A transaction in transaction? Possible? > O Michael Fuhr έγραψε στις Nov 10, 2004 : > > > On Wed, Nov 10, 2004 at 12:45:19AM -0800, Riccardo G. Facchini wrote: > > > > > Sorry, but I understand that your example is not really about nested > > > transactions, but about sequential transactions. > > > > Here's a more elaborate example. If this doesn't demonstrate the > > capability you're looking for, then please provide an example of > > what you'd like to do and describe the desired behavior. > > > > CREATE TABLE person (id SERIAL PRIMARY KEY, name TEXT NOT NULL); > > > > BEGIN; > > INSERT INTO person (name) VALUES ('Alice'); > > > > SAVEPOINT s1; > > INSERT INTO person (name) VALUES ('Bob'); > > > > SAVEPOINT s2; > > INSERT INTO person (name) VALUES ('Charles'); > > > > SAVEPOINT s3; > > INSERT INTO person (name) VALUES ('David'); > > ROLLBACK TO s3; > > > > INSERT INTO person (name) VALUES ('Edward'); > > ROLLBACK TO s2; > > > > INSERT INTO person (name) VALUES ('Frank'); > > RELEASE s1; > > > > INSERT INTO person (name) VALUES ('George'); > > COMMIT; > > Just a very naive thought.... > Wouldn't make more sense to allow nested begin/commit/rollback blocks? > > > > > SELECT * FROM person; > > id | name > > ----+-------- > > 1 | Alice > > 2 | Bob > > 6 | Frank > > 7 | George > > > > If you change "ROLLBACK TO s2" to "RELEASE s2" then you get this: > > > > id | name > > ----+--------- > > 1 | Alice > > 2 | Bob > > 3 | Charles > > 5 | Edward > > 6 | Frank > > 7 | George > > > > If you change "RELEASE s1" to "ROLLBACK TO s1" then you get this: > > > > id | name > > ----+-------- > > 1 | Alice > > 7 | George > > > > > > -- > -Achilleus > > > ---------------------------(end of broadcast)--------------------------- > TIP 7: don't forget to increase your free space map settings >
В списке pgsql-sql по дате отправления: