From: | "DaNieL(dot)(dot)!" <daniele(dot)pignedoli(at)gmail(dot)com> |
---|---|
To: | pgsql-general(at)postgresql(dot)org |
Subject: | Re: ERROR: syntax error at or near "IF"... why? |
Date: | 2009-04-30 06:45:53 |
Message-ID: | b3bd908e-4245-44aa-8ee4-704c73147768@y6g2000prf.googlegroups.com |
Views: | Raw Message | Whole Thread | Download mbox | Resend email |
Thread: | |
Lists: | pgsql-general |
On 30 Apr, 07:30, Johan Nel <johan555(dot)nel(dot)(dot)(dot)(at)xsinet555(dot)co(dot)za> wrote:
> Daniel,
>
> > IF (SELECT credit FROM users WHERE name = 'mary') < 0 THEN
> > ROLLBACK;
> > END IF
> > COMMIT;
>
> > i always get the error
> > ERROR: syntax error at or near "IF"
>
> > Where am i mistaken?
>
> SELECT returns in essence a record or setof records.
>
> DECLARE _credit int;
> ...
> SELECT credit FROM users WHERE name = 'mary' INTO _credit;
> IF _credit < 0 THEN
> ROLLBACK;
> END IF;
>
> If there is a chance that the select returns more than one record you
> can do something similar to:
> DECLARE rec record;
> ...
> FOR rec IN (SELECT credit FROM users WHERE name = 'mary'
> LOOP
> IF rec.credit < 0 THEN
> ...
> ELSE
> ...
> END IF;
> END LOOP;
>
> HTH,
>
> Johan Nel
> Pretoria, South Africa.
I tryed the declare, before and after the BEGIN;, but allways returns
me the error:
-----------------------------------------------------------
ERROR: syntax error at or near "int";
LINE 1: DECLARE _mycredit int;
^
-----------------------------------------------------------
For the if statement, i've tryed that
IF 2 = 2 THEN
ROLLBACK;
END IF
but still the error near the "IF"..
dunno.. in mysql the if can be used in that way.. in postgres no?
From | Date | Subject | |
---|---|---|---|
Next Message | Johan Nel | 2009-04-30 07:12:47 | Re: ERROR: syntax error at or near "IF"... why? |
Previous Message | Michele Petrazzo - Unipex | 2009-04-30 06:43:23 | pg_dump and pg_restore problem |