From: | Jan Wieck <janwieck(at)yahoo(dot)com> |
---|---|
To: | guard <guard(at)ficnet(dot)net> |
Cc: | pgsql-sql(at)postgresql(dot)org |
Subject: | Re: pltcl function -> plpgsql |
Date: | 2002-01-03 21:01:02 |
Message-ID: | 200201032101.g03L12I16689@saturn.jw.home |
Views: | Raw Message | Whole Thread | Download mbox | Resend email |
Thread: | |
Lists: | pgsql-sql |
guard wrote:
> dear all
>
> I have function >>
> spi_exec "Update $1 set
> adv_amt=adv_amt-$OLD(adv_amt)+$OLD(gadv_amt) where $2=''$OLD($2)'' "
>
> how to change plpgsql code
>
> ps. $1 a variable
It would be nice to see the entire function declaration, or
at least the CREATE FUNCTION part, and not just one single
statement out of it's body.
Second it looks alot like an AFTER UPDATE trigger to me. In
that case, I would suggest changing it into a BEFORE UPDATE
one and do the modification directly in the NEW.adv_amt
field. The way you're doing it now add's one more dead tuple
to the table.
The above is usually achieved in PL/pgSQL with the EXECUTE
syntax. But I would discourage from that and suggest
creating separate functions per table/attribute pair, because
EXECUTE (as well as spi_exec in Tcl) statements are not
cacheable.
Jan
--
#======================================================================#
# It's easier to get forgiveness for being wrong than for being right. #
# Let's break this rule - forgive me. #
#================================================== JanWieck(at)Yahoo(dot)com #
_________________________________________________________
Do You Yahoo!?
Get your free @yahoo.com address at http://mail.yahoo.com
From | Date | Subject | |
---|---|---|---|
Next Message | Stephan Szabo | 2002-01-03 21:44:35 | Re: How to union tables and have a field with UNIQUE constraint? |
Previous Message | Tom Lane | 2002-01-03 20:51:37 | Re: How to union tables and have a field with UNIQUE constraint? |