From: | <btober(at)computer(dot)org> |
---|---|
To: | <ap(at)cict(dot)nl> |
Cc: | <pgsql-ml(at)baguette(dot)net>, <pgsql-general(at)postgresql(dot)org> |
Subject: | Re: Restart increment to 0 each year = re-invent the se |
Date: | 2004-04-26 12:34:32 |
Message-ID: | 65026.216.238.112.88.1082982872.squirrel@$HOSTNAME |
Views: | Raw Message | Whole Thread | Download mbox | Resend email |
Thread: | |
Lists: | pgsql-general |
> You can set a sequence 'nextval' with the following statement :
>
> SELECT setval('XXX_YYY_seq',0);
The statement above will not work (... at least, it will not work in
PostgreSQL 7.3.1 -- I don't know if the new version has changed this
behavior...but I doubt it). You have to use something like
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 0;
END;'
LANGUAGE 'plpgsql' VOLATILE;
>
> XXX is the table name.
> YYY is the name of the field containing the 'serial' value.
>
> The next value inserted in the table will then have a (serial) value of
> '0' or '1', I am not entirely sure which (I think '1').
> Alexander Priem.
--Berend Tober
From | Date | Subject | |
---|---|---|---|
Next Message | Clodoaldo Pinto Neto | 2004-04-26 13:00:41 | Re: Restart increment to 0 each year = re-invent the sequences mecanism ? |
Previous Message | Priem, Alexander | 2004-04-26 12:30:16 | Re: [Spam] Re: Restart increment to 0 each year = re-in |