From: | Alvaro Herrera <alvherre(at)commandprompt(dot)com> |
---|---|
To: | Daniel Carrero <dxduke(at)gmail(dot)com> |
Cc: | Luis Rodrigo Gallardo Cruz <rodrigo(at)nul-unu(dot)com>, pgsql-es-ayuda(at)postgresql(dot)org |
Subject: | Re: Consulta sobre funcion |
Date: | 2006-06-20 13:35:03 |
Message-ID: | 20060620133503.GK26882@surnet.cl |
Views: | Raw Message | Whole Thread | Download mbox | Resend email |
Thread: | |
Lists: | pgsql-es-ayuda |
Daniel Carrero escribió:
> Se supone que dentro de una funcion tengo que hacer INSERT UPDATE o
> DELETE, pero, puedo equivocarme, solo se pueden hacer rollback y
> commit en procedimientos, esa es la duda. Dentro del procedimiento
> hacer un commit o rollback segun se necesite para una transaccion
> segura, que en caso de error no ejecute, por ejemplo un insert, se
> entiende???
En Postgres no existen "procedimientos", solo funciones. No puedes
hacer un COMMIT ni ROLLBACK dentro de una funcion (tampoco BEGIN). Si
quieres abortar una funcion, haz RAISE EXCEPTION y listo, la funcion
completa esta abortada y la transaccion tambien.
Ahora, puedes capturar excepciones si quieres, o puedes usar SAVEPOINT
antes de entrar a una funcion, pero ese ya es otro tema.
--
Alvaro Herrera http://www.CommandPrompt.com/
The PostgreSQL Company - Command Prompt, Inc.
From | Date | Subject | |
---|---|---|---|
Next Message | Juan Martínez | 2006-06-20 13:38:32 | Re: Codificación UTF8 |
Previous Message | Daniel Carrero | 2006-06-20 13:34:54 | Re: modelado de datos |