Re: Transacciones Anidadas - Mailing list pgsql-general

From Karsten Hilbert
Subject Re: Transacciones Anidadas
Date
Msg-id 20051216205847.GA7637@merkur.hilbert.loc
Whole thread Raw
In response to Transacciones Anidadas  ("Juan Garcés Bustamante"<jgarces@futuroprofesional.cl>)
List pgsql-general
On Fri, Dec 16, 2005 at 03:23:07PM -0400, Juan Garcés Bustamante wrote:

> Hola
Guten Abend !

> Estoy trabajando con Postgres 8.0.3 en Ubuntu.
Hm, ich benutze Debian, mit PostgreSQL 7.4 in einem Cluster.
Wie das bei Ubuntu so funktioniert, weiß ich nicht so
richtig.

> Necesito realizar transacciones anidadas, pero no logro que se aborten
> transacciones intermedias al abortarse una superior.
Ich glaube Du mußt Savepoints benutzen, wenn Du eine
Zwischentransaktion innerhalb einer anderen starten willst.
Es natürlich klar, daß innerhalb *einer* Transaktion jeder
Fehler die gesamte Verarbeitung abbricht !

> Ejemplo:
>
> BEGIN WORK;
> INSERT INTO mitabla VALUES (1);
>     BEGIN TRANSACTION;
>      INSERT INTO mitabla VALUES (2);
>      INSERT INTO mitabla VALUES (3);
>     COMMIT TRANSACTION;
> INSERT INTO mitabla VALUES (4);
> ROLLBACK WORK;
>
> El "ROLLBACK WORK" no aborta la TRANSACTION.
Das kann ich mir nicht vorstellen. Bist Du sicher, daß BEGIN
TRANSACTION die richtige Syntax ist für das, was Du machen
willst ?

> Resultado de la consulta:
>
> mitabla
> ========
> 1
> 2
> 3
> (3 rows)
Ach so, klar, mE können BEGINs geschachtelt werden, ohne daß
ein Problem auftritt. Allerdings beendet dann COMMIT alle
begonnenen Transaktionen auf einmal. Da das INSERT ... 4
erst nach dem COMMIT, aber vor dem ROLLBACK kommt, wird es
richtig von dem ROLLBACK erfasst und erscheint nicht in der
Tabelle.

> Resultado esperado:
>
> mitabla
> ========
>
> (0 rows)
Nee, nee. Deine Erwartung an das Ergebnis ist falsch.

> Alguna idea??
Naja, siehe oben :-)

> Gracias.
Kein Problem. Gern wieder.

Karsten
--
GPG key ID E4071346 @ wwwkeys.pgp.net
E167 67FD A291 2BEA 73BD  4537 78B9 A9F9 E407 1346

pgsql-general by date:

Previous
From: Madison Kelly
Date:
Subject: Re: Getting a DB password to work without editing pg_hba.conf,
Next
From: "Niblett, David A"
Date:
Subject: FW: PL/pgSQL Function Help