Search Postgresql Archives

Re: Transacciones Anidadas

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



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


[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Index of Archives]     [Postgresql Jobs]     [Postgresql Admin]     [Postgresql Performance]     [Linux Clusters]     [PHP Home]     [PHP on Windows]     [Kernel Newbies]     [PHP Classes]     [PHP Books]     [PHP Databases]     [Postgresql & PHP]     [Yosemite]
  Powered by Linux