Search Postgresql Archives

Re: resetting sequence to cur max value

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Tom Lane wrote:
Michael Fuhr <mike@xxxxxxxx> writes:
On Tue, Dec 12, 2006 at 12:19:56PM -0500, Tom Lane wrote:
Usually you do something like
  select setval('seq_name', (select max(idcol) from table) + 1);
after loading data into the table.

Is "+ 1" necessary with the two-parameter form of setval()?

Given the docs you quoted, no --- I was just too lazy to look up whether
it set is_called or not.  With the +1 you don't have to think ;-)

Even less thinking:

CREATE OR REPLACE FUNCTION public.set_sequence(name, int4)
 RETURNS int4 AS
'
DECLARE
 l_sequence_name ALIAS FOR $1;
 l_last_value ALIAS FOR $2;
BEGIN
 IF  l_last_value = 0 THEN
   PERFORM setval(l_sequence_name,1, False);
 ELSE
   PERFORM setval(l_sequence_name,l_last_value);
 END IF;
RETURN 1;
END;'
 LANGUAGE 'plpgsql' VOLATILE;


Regards,
Berend Tober




[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Index of Archives]     [Postgresql Jobs]     [Postgresql Admin]     [Postgresql Performance]     [Linux Clusters]     [PHP Home]     [PHP on Windows]     [Kernel Newbies]     [PHP Classes]     [PHP Books]     [PHP Databases]     [Postgresql & PHP]     [Yosemite]
  Powered by Linux