From: | Jorge Jacques <jorge(at)eskalonnetwork(dot)com> |
---|---|
To: | Ayuda <pgsql-es-ayuda(at)postgresql(dot)org> |
Subject: | Se pueden usar Transacciones desde una funcion? |
Date: | 2010-02-16 17:31:15 |
Message-ID: | 4B7AD663.2020003@eskalonnetwork.com |
Views: | Raw Message | Whole Thread | Download mbox | Resend email |
Thread: | |
Lists: | pgsql-es-ayuda |
Hola, buen día
Estoy intentando usar transacciones en una función:
CREATE OR REPLACE FUNCTION "public"."fx_hacer_entrada_por_concepto" (in
int4, in float8, in int4) RETURNS bool AS
$BODY$
DECLARE
id_usuario ALIAS FOR $1;
id_concepto ALIAS FOR $3;
cant ALIAS FOR $2;
id_caja INT;
id_ticket INT;
BEGIN
SAVEPOINT rescate;
id_caja := nextval('caja_caja_id_seq'::regclass);
id_ticket :=
nextval('entradas_por_concepto_entrada_por_concepto_id_seq'::regclass);
INSERT INTO caja VALUES (id_caja, id_ticket, cant, true);
IF NOT FOUND THEN
ROLLBACK TO rescate;
RETURN FALSE;
END IF;
INSERT INTO entradas_por_concepto VALUES (id_ticket, id_concepto);
INSERT INTO transacciones (transaccion_id, caja_id, usuario_id,
tipo_de_transaccion_id, registro_id, fecha_hora) VALUES (DEFAULT,
id_caja, id_usuario, 2, id_ticket, CURRENT_TIMESTAMP);
COMMIT;
RETURN TRUE;
END
$BODY$
LANGUAGE 'plpgsql'
Pero al llamarla:
select fx_hacer_entrada_por_concepto(1, 10000, 1);
Obtengo un error:
>[Error] Script lines: 1-3 --------------------------
ERROR: SPI_execute_plan failed executing query "SAVEPOINT rescate":
SPI_ERROR_TRANSACTION
Line: 1
Alguna idea? Desde ya muchas gracias.
Saluos!
From | Date | Subject | |
---|---|---|---|
Next Message | Gilberto Castillo Martínez | 2010-02-16 17:59:40 | Re: Se pueden usar Transacciones desde una funcion? |
Previous Message | Gilberto Castillo Martínez | 2010-02-16 17:03:11 | Re: Instalar postgres en una ruta especifica con yum en centos |