| 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: | Whole Thread | Raw Message | 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 |