In 9.1 you could use and updatable CTE and in the main query perform and return a count. I would think plpgsql would be the better option though.
On Jan 6, 2012, at 2:29, Andreas Kretschmer <andr...@a-kretschmer.de> wrote: > > Kevin Duffy <kevind0...@gmail.com> hat am 6. Januar 2012 um 00:32 > geschrieben: > > Hello: > > I am try to get a function to return the count of the rows updated within the > function. > As in the following, I wan the number of rows updated to be returned. > > This is a simple update, other update statements that I need to write will be > complicated. > > CREATE OR REPLACE FUNCTION est_idio_return_stats_update() > RETURNS integer AS > > ' > update est_idiosyncratic_return_stats set delta_avg_60 = avg_60 - > period_61_return, delta_avg_last_24 = avg_last_24 - period_61_return, > delta_avg_last_18 = avg_last_18 - period_61_return, > delta_avg_last_12 = avg_last_12 - period_61_return, > delta_avg_last_6 = avg_last_06 - period_61_return ; > ' > > LANGUAGE SQL ; > > The above returns the following: > ERROR: return type mismatch in function declared to return integer > DETAIL: Function's final statement must be SELECT or INSERT/UPDATE/DELETE > RETURNING. > CONTEXT: SQL function "est_idio_return_stats_update" > > ********** Error ********** > > ERROR: return type mismatch in function declared to return integer > SQL state: 42P13 > Detail: Function's final statement must be SELECT or INSERT/UPDATE/DELETE > RETURNING. > Context: SQL function "est_idio_return_stats_update" > > > Thanks for your kind assistance. > > > KD > > > I think, you can rewrite this to pl/pgsql (language, not sql) and than you > can use > GET DIAGNOSTICS integer_var = ROW_COUNT; > > > > > > > Andreas > > > > > > > > >