Thread: Plpgsql Language Feature?

Plpgsql Language Feature?

From
David Hartwig
Date:
In the context of a plpgsql script is a possible to access the number of rows effected by an UPDATE or DELETE statement?   It could be used  to simplify, and probably improve performance on, many scripts.   I would like to do something like:

    update foo set bar = bar + new.amount where key = new.key;

    if ROWS_UPDATED > 0 then
        --  This would be less likely to occur
        insert into foo (key, bar) values (new.key, new.bar);
    end if;

Otherwise I must construct  an additional SELECTstatement to see if the row exists.  Something like:

    select  1 from foo where key = new.key;
 
    if found then
        update foo set bar = bar + new.amount where key = new.key;
    else
        insert into foo (key, bar) values (new.key, new.bar);
    end if;

Might this be a worth while feature if it does not now exist?

TIA.

Re: [SQL] Plpgsql Language Feature?

From
jwieck@debis.com (Jan Wieck)
Date:
> In the context of a plpgsql script is a possible to access the number of
> rows effected by an UPDATE or DELETE statement?   It could be used  to
> simplify, and probably improve performance on, many scripts.   I would
> like to do something like:
>
>     update foo set bar = bar + new.amount where key = new.key;
>
>     if ROWS_UPDATED > 0 then
>         --  This would be less likely to occur
>         insert into foo (key, bar) values (new.key, new.bar);
>     end if;

    Yes,  I  think this would be a nice feature. Will take a look
    if I can add it before v6.5 BETA starts.


Jan

--

#======================================================================#
# It's easier to get forgiveness for being wrong than for being right. #
# Let's break this rule - forgive me.                                  #
#======================================== jwieck@debis.com (Jan Wieck) #