Re: [HACKERS] how to alter sequence.

From: Hannu Krosing <hannu(at)tm(dot)ee>
To: Oliver Elphick <olly(at)lfix(dot)co(dot)uk>
Cc: raja kumar thatte <trajakumar(at)yahoo(dot)com>, "pgsql-hackers(at)postgresql(dot)org" <pgsql-hackers(at)postgresql(dot)org>, pgsql-admin(at)postgresql(dot)org
Subject: Re: [HACKERS] how to alter sequence.
Date: 2002-12-04 15:41:59
Message-ID: 1039016518.2281.17.camel@rh72.home.ee
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-admin pgsql-hackers

Oliver Elphick kirjutas K, 04.12.2002 kell 19:06:
> On Wed, 2002-12-04 at 12:29, raja kumar thatte wrote:
> > Hai friends,
> > I have a sequence called raj_seq with max value 3000.
> ...
> > now i wanted to increase the max value of the raj_seq
> > to 9999999.
> > How to do this change?
> > If i drop and recreate the raj_seq, then i have to
> > recreate the table and all triggers working on that
> > table.But it is not an acceptable solution.
> > So with out droping raj_seq , how do I solve this
> > problem.
>
> Unfortunately there doesn't seem to be any easy way to do this. There
> is no ALTER SEQUENCE command and you can't use UPDATE on a sequence.
>
> Hackers: Could this be a TODO item for 7.4?

This seems to work - as an example why we need the TODO ;)

hannu=# update seq set max_value = 99;
ERROR: You can't change sequence relation seq
hannu=# update pg_class set relkind = 'r' where relname = 'seq';
UPDATE 1
hannu=# update seq set max_value = 99;
UPDATE 1
hannu=# update pg_class set relkind = 'S' where relname = 'seq';
UPDATE 1
hannu=# select * from seq;
sequence_name | last_value | increment_by | max_value | min_value |
cache_value | log_cnt | is_cycled | is_called
---------------+------------+--------------+-----------+-----------+-------------+---------+-----------+-----------
seq | 1 | 1 | 99 | 1
| 1 | 1 | f | f
(1 row)

I can't really recommend it, because it may (or may not ;) have some
unwanted behaviours as well;

>
> The easiest way to do this at present is probably to dump the database,
> edit the dump to change the sequence max_value and then recreate the
> database from the edited dump. I presume you used CREATE SEQUENCE in
> order to get such a low max_value. If it were created from a SERIAL
> datatype, you would also have to edit the table definition to use a
> pre-created sequence. There is no means of specifying a max_value using
> SERIAL.
--
Hannu Krosing <hannu(at)tm(dot)ee>

In response to

Responses

Browse pgsql-admin by date

  From Date Subject
Next Message Shridhar Daithankar 2002-12-04 15:51:24 Re: [ADMIN] how to alter sequence.
Previous Message Andreas Schmitz 2002-12-04 14:47:25 how to cancel a query ?

Browse pgsql-hackers by date

  From Date Subject
Next Message Shridhar Daithankar 2002-12-04 15:51:24 Re: [ADMIN] how to alter sequence.
Previous Message Tomas Berndtsson 2002-12-04 15:38:37 big text field -> message type 0x44