Re: Potgre y transacciones

From: Alvaro Herrera <alvherre(at)commandprompt(dot)com>
To: Ivan Arcos Carballo <hiban8(at)hotmail(dot)com>
Cc: pgsql-es-ayuda(at)postgresql(dot)org
Subject: Re: Potgre y transacciones
Date: 2006-11-14 11:46:38
Message-ID: 20061114114638.GA27380@alvh.no-ip.org
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-es-ayuda

Ivan Arcos Carballo escribió:
> Me han contestado que PostGre no admite transacciones anidadas. Mi pregunta
> es: ¿las admite MySQL? ¿alguien me puede indicar como usar los SAVEPOINTS
> en C#?.No admite postgre transacciones anidadas pero, si creo un ámbito de
> transacción con transactionScope y dentro del ambito creo un par de
> conexiones y realizo tareas de las que quiero hacer un rollback de todas
> ellas en caso de excepción ¿me lo permite?Gracias

Lo de usar múltiples conexiones no es muy buena idea, porque es muy
facil que ocurra un error y se aborte solo una, con lo cual te
encontraras con violacion de la integridad transaccional (atomicidad).

Lo que yo te sugiero es hacer algo asi como

BEGIN
insert ... (1)
update ... (2)
SAVEPOINT un_savepoint
insert ... (3)
update ... (4)
COMMIT

Si alguno de los comandos despues del savepoint falla, puedes hacer dos
cosas: un "ROLLBACK TO un_savepoint", en cuyo caso solo los comandos 3 y
4 son abortados, mientras que los comandos 1 y 2 siguen siendo validos;
es mas, puedes reintentar los comandos 3 y 4 (modificados de manera que
esta vez no incurran en el mismo error), y continuar.

Y lo otro que puedes hacer es ROLLBACK (sin la clausula "TO"), en cuyo
caso se abortan los cuatro comandos y quedas fuera del bloque de
transaccion.

MySQL, hasta donde yo se, no soporta savepoints ni transacciones
anidadas (hasta hace poco ni siquiera soportaba transacciones).

No tengo idea como usarlo en C#.

--
Alvaro Herrera http://www.CommandPrompt.com/
The PostgreSQL Company - Command Prompt, Inc.

In response to

Responses

  • Sobre rtrees at 2006-11-14 15:03:20 from Raul Andres Duque

Browse pgsql-es-ayuda by date

  From Date Subject
Next Message Alvaro Herrera 2006-11-14 11:52:55 Re: Store Procedure con parametros variables
Previous Message Ivan Arcos Carballo 2006-11-14 08:40:44 Potgre y transacciones