From: | Jie Liang <jie(at)stbernard(dot)com> |
---|---|
To: | 'Dan Schwitalla' <acadrace(at)hotmail(dot)com>, pgsql-sql(at)postgresql(dot)org |
Subject: | Re: PL/PGSQL question on transactions |
Date: | 2002-04-12 16:34:29 |
Message-ID: | 7C760DAA511DC74B99E7D22189F786F1906E00@MAIL01.stbernard.com |
Views: | Raw Message | Whole Thread | Download mbox | Resend email |
Thread: | |
Lists: | pgsql-sql |
Nope.
As my understanding, in a PL/pgSQL function, all statements are in ONE
transaction,
you do not need another pair of begin/end. If transaction failed, it abort
whole
thing anyway.
Jie Liang
-----Original Message-----
From: Dan Schwitalla [mailto:acadrace(at)hotmail(dot)com]
Sent: Friday, April 12, 2002 8:50 AM
To: pgsql-sql(at)postgresql(dot)org
Subject: [SQL] PL/PGSQL question on transactions
Can you imbed BEGIN; and COMMIT; statements in the body of a pl/pgsql
function?
I am getting a parse error upon execution when I try it.
Code:
CREATE FUNCTION chitadj(integer,integer) RETURNS integer AS '
DECLARE
result integer;
oldamount integer;
BEGIN
BEGIN;
SELECT INTO oldamount chits FROM avatar
WHERE avatar_id = $1;
IF oldamount IS NULL THEN
RETURN -1;
END IF;
IF ((oldamount < abs($2)) AND ($2 < 0)) THEN
RETURN -2;
END IF;
result := oldamount + $2;
RETURN result;
COMMIT;
END;
' language 'plpgsql';
-------------------------
Dan
_________________________________________________________________
Join the world's largest e-mail service with MSN Hotmail.
http://www.hotmail.com
---------------------------(end of broadcast)---------------------------
TIP 6: Have you searched our list archives?
From | Date | Subject | |
---|---|---|---|
Next Message | Tom Lane | 2002-04-12 17:11:09 | Re: Functions in Postgres |
Previous Message | Peter Eisentraut | 2002-04-12 16:24:33 | Re: Functions in Postgres |