Re: Moving to postgresql and some ignorant questions - Mailing list pgsql-general

From Bill Moran
Subject Re: Moving to postgresql and some ignorant questions
Date
Msg-id 20070814135651.1fd56abe.wmoran@potentialtech.com
Whole thread Raw
In response to Re: Moving to postgresql and some ignorant questions  ("Phoenix Kiula" <phoenix.kiula@gmail.com>)
Responses Re: Moving to postgresql and some ignorant questions  ("Mikko Partio" <mpartio@gmail.com>)
List pgsql-general
In response to "Phoenix Kiula" <phoenix.kiula@gmail.com>:

> > If you issue a BEGIN then nothing gets committed until you issue a COMMIT. If
> > anything happens in the meantime then everything you've done since the BEGIN
> > disappears.
>
> There are some cases where I would like to bunch queries into a
> transaction purely for speed purposes, but they're not interdependent
> for integrity. E.g.,
>
>   BEGIN TRANSACTION;
>   UPDATE1;
>   UPDATE2;
>   UPDATE3;
>   COMMIT;
>
> If UPDATE2 fails because it, say, violates a foreign key constraint,
> then so be it. I want UPDATE3 to go ahead. Is this not possible, or is
> there an option I can use to do these kind of independent-query
> transactions?

That's not possible, by design.

However, your application could keep track of which queries have run, and
if one fails, start the transaction over without the failing query.

But the rule is, if any query within the transaction errors, then all queries
within the transaction are rolled back.

--
Bill Moran
http://www.potentialtech.com

pgsql-general by date:

Previous
From: "Phoenix Kiula"
Date:
Subject: Re: Moving to postgresql and some ignorant questions
Next
From: Michal Paluchowski
Date:
Subject: Creating a row during a select