| From: | Christopher Kings-Lynne <chriskl(at)familyhealth(dot)com(dot)au> |
|---|---|
| To: | Dan Schwitalla <acadrace(at)hotmail(dot)com> |
| Cc: | pgsql-sql(at)postgresql(dot)org |
| Subject: | Re: PL/PGSQL question on transactions |
| Date: | 2002-04-12 15:58:19 |
| Message-ID: | 20020412235806.Q91940-100000@houston.familyhealth.com.au |
| Views: | Whole Thread | Raw Message | Download mbox | Resend email |
| Thread: | |
| Lists: | pgsql-sql |
No - a function implicity runs in a transaction anyway.
Chris
On Fri, 12 Apr 2002, Dan Schwitalla wrote:
> 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 worlds 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
>
| From | Date | Subject | |
|---|---|---|---|
| Next Message | Peter Eisentraut | 2002-04-12 16:24:33 | Re: Functions in Postgres |
| Previous Message | Dan Schwitalla | 2002-04-12 15:50:01 | PL/PGSQL question on transactions |