Обсуждение: pltcl function -> plpgsql

Поиск
Список
Период
Сортировка

pltcl function -> plpgsql

От
"guard"
Дата:
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

thanks




--





Re: pltcl function -> plpgsql

От
Jan Wieck
Дата:
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'sone 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@Yahoo.com #



_________________________________________________________
Do You Yahoo!?
Get your free @yahoo.com address at http://mail.yahoo.com