Re: PL/PGSQL question on transactions

Поиск
Список
Период
Сортировка
От Jie Liang
Тема Re: PL/PGSQL question on transactions
Дата
Msg-id 7C760DAA511DC74B99E7D22189F786F1906E00@MAIL01.stbernard.com
обсуждение исходный текст
Ответ на PL/PGSQL question on transactions  ("Dan Schwitalla" <acadrace@hotmail.com>)
Список 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@hotmail.com]
Sent: Friday, April 12, 2002 8:50 AM
To: pgsql-sql@postgresql.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?

http://archives.postgresql.org


В списке pgsql-sql по дате отправления:

Предыдущее
От: Peter Eisentraut
Дата:
Сообщение: Re: Functions in Postgres
Следующее
От: Tom Lane
Дата:
Сообщение: Re: Functions in Postgres