Hola a todos,

alguien sabe si es posible realizar transacciones autónomas en PostgreSQL ? Me explico:

Lo que se desea es lo siguiente:

==================
Init.Transaction
 INSERT ....
 INSERT ....

 IF xxx THEN insert_LOG;

 INSERT ....
 INSERT ....

 IF yyyy THEN COMMIT;
 ELSE ROLLBACK;
==================


Como puede verse, se inicia la transacción y se hacen unas INSERTS (es un ejemplo, claro). En un momento (o varios) dado se realiza una INSERT a un LOG.

De lo que se trata es que esa INSERT se produzca SI o SI. Es decir. El LOG se grabe, aunque se haga ROLLBACK a la transacción en si misma.

En ORACLE, esto se realiza con una linea:

PRAGMA AUTONOMOUS_TRANSACTION;

De este modo, se indica que esta transacción es autónoma que de debe ejecutarse en su 
"propio espacio de transaccion".

Queria saber si existe algo semejante en PostgreSQL.  Sé que si, desde una 
aplicación cliente, realizo conexiones diferentes para esa INSERT_LOG, entonces 
quedará fuera de la transacción principal.  Pero me gustaría saber si existe 
alguna forma de hacerlo DIRECTAMENTE.

Gracias.



--
TIP 4: No hagas 'kill -9' a postmaster

Responder a