On 22 Jul 2011, at 22:02, Pablo Romero Abiti wrote:
> The problem I'm facing is that the trigger before update won't execute if
> there isn't a row with idcol=3 in the table warehouse.
>
> Here's my code:
>
> CREATE OR REPLACE FUNCTION update_warehouse() returns "trigger" AS '
> declare idcolmaestro float:=0;
> BEGIN
> select into a idcolor1 from color_eq where idcolor2=old.idcolor;
You didn't declare 'a'. Perhaps you meant to use idcolmaestro?
> if a is null then
Try 'if NOT FOUND' here instead.
> a=old.idcolor;
> end if;
>
> new.idcolor=a;
> return new;
> END;
> ' LANGUAGE 'plpgsql' VOLATILE;
I'd probably change this code a bit so that the assignment to idcolor only
takes place if a value with idcolor2=old.idvalue was found:
if FOUND then
new.idcolor := a;
endif
return new;
That saves a few unnecessary CPU cycles.
Alban Hertroys
--
The scale of a problem often equals the size of an ego.
!DSPAM:737,4e2a8d6912091302916282!
--
Sent via pgsql-general mailing list ([email protected])
To make changes to your subscription:
http://www.postgresql.org/mailpref/pgsql-general