Re: resetting sequence to cur max value
От | Berend Tober |
---|---|
Тема | Re: resetting sequence to cur max value |
Дата | |
Msg-id | 457FFFD4.9080806@seaworthysys.com обсуждение исходный текст |
Ответ на | Re: resetting sequence to cur max value (Tom Lane <tgl@sss.pgh.pa.us>) |
Список | pgsql-general |
Tom Lane wrote: > Michael Fuhr <mike@fuhr.org> 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
В списке pgsql-general по дате отправления: