From: | Alban Hertroys <dalroi(at)solfertje(dot)student(dot)utwente(dot)nl> |
---|---|
To: | Pablo Romero Abiti <pabiti(at)yahoo(dot)com> |
Cc: | "pgsql-general(at)postgresql(dot)org" <pgsql-general(at)postgresql(dot)org> |
Subject: | Re: Update columns in same table from update trigger? |
Date: | 2011-07-23 08:59:15 |
Message-ID: | 39387FA6-D473-4575-BC81-F9A4A1FEBE07@solfertje.student.utwente.nl |
Views: | Raw Message | Whole Thread | Download mbox | Resend email |
Thread: | |
Lists: | pgsql-general |
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!
From | Date | Subject | |
---|---|---|---|
Next Message | Gavin Flower | 2011-07-23 09:01:41 | Re: Implementing "thick"/"fat" databases |
Previous Message | Darren Duncan | 2011-07-23 01:32:53 | Re: Implementing "thick"/"fat" databases |