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 по дате отправления:

Предыдущее
От: Martijn van Oosterhout
Дата:
Сообщение: Re: Statement timeout not working on broken connections with active queries
Следующее
От: "Tomi N/A"
Дата:
Сообщение: Re: grant select on all tables of schema or database