Обсуждение: Renaming a sequence?

Поиск
Список
Период
Сортировка

Renaming a sequence?

От
Дата:
Hi,

I just renamed some of my tables, but I now have sequences with older names.
I followed info from http://www.postgresql.org/docs/current/static/sql-altersequence.html :

"Some variants of ALTER TABLE can be used with    sequences as well; for example, to rename a sequence use ALTER
TABLERENAME"  

So this is what I did:

ALTER TABLE topic_id_seq RENAME TO watchlist_id_seq;

That *appeared* to work, but I still see the old sequence name:

mydb => \d watchlist
                                     Table "public.watchlist"
Column    |            Type             |                       Modifiers
--------------+-------------------------------+-------------------------------------------------------
 id           | integer                      | not null default nextval('public.topic_id_seq'::text)
...
Indexes:
    "pk_topic_id" PRIMARY KEY, btree (id)


It looks like my sequence WAS renamed, but my table's PK points to the old sequence name, which is not supposed to
existany more.  Is there any way to change this without killing the sequence? 

Thanks,
Otis




Re: Renaming a sequence?

От
"Andy Shellam"
Дата:
You also need to alter your column's default value to point to your new
sequence (nextval('public.watchlist_id_seq'::text)).

I'm not certain of the SQL to do this but must be along the order of "ALTER
COLUMN <tablename>.<column name> DEFAULT
nextval('public.watchlist_id_seq'::text)" or something similar.

Andy

-----Original Message-----
From: pgsql-admin-owner@postgresql.org
[mailto:pgsql-admin-owner@postgresql.org] On Behalf Of
ogjunk-pgjedan@yahoo.com
Sent: Saturday, 25 March, 2006 3:23 am
To: pgsql-admin@postgresql.org
Subject: [ADMIN] Renaming a sequence?

Hi,

I just renamed some of my tables, but I now have sequences with older names.

I followed info from
http://www.postgresql.org/docs/current/static/sql-altersequence.html :

"Some variants of ALTER TABLE can be used with    sequences as well; for
example, to rename a sequence use ALTER    TABLE RENAME"

So this is what I did:

ALTER TABLE topic_id_seq RENAME TO watchlist_id_seq;

That *appeared* to work, but I still see the old sequence name:

mydb => \d watchlist
                                     Table "public.watchlist"
Column    |            Type             |                       Modifiers
--------------+-------------------------------+-----------------------------
--------------------------
 id           | integer                      | not null default
nextval('public.topic_id_seq'::text)
...
Indexes:
    "pk_topic_id" PRIMARY KEY, btree (id)


It looks like my sequence WAS renamed, but my table's PK points to the old
sequence name, which is not supposed to exist any more.  Is there any way to
change this without killing the sequence?

Thanks,
Otis




---------------------------(end of broadcast)---------------------------
TIP 1: if posting/reading through Usenet, please send an appropriate
       subscribe-nomail command to majordomo@postgresql.org so that your
       message can get through to the mailing list cleanly

!DSPAM:14,4424b7b935047329715045!





Re: Renaming a sequence?

От
Дата:
Thanks Andy, this was it:

ALTER TABLE watchlist ALTER COLUMN id SET DEFAULT nextval('public.watchlist_id_seq'::text);

Otis

----- Original Message ----
From: Andy Shellam <andy.shellam@mailnetwork.co.uk>
To: ogjunk-pgjedan@yahoo.com; pgsql-admin@postgresql.org
Cc: pgsql-admin@postgresql.org
Sent: Saturday, March 25, 2006 12:49:45 PM
Subject: Re: [ADMIN] Renaming a sequence?

You also need to alter your column's default value to point to your new
sequence (nextval('public.watchlist_id_seq'::text)).

I'm not certain of the SQL to do this but must be along the order of "ALTER
COLUMN <tablename>.<column name> DEFAULT
nextval('public.watchlist_id_seq'::text)" or something similar.

Andy

-----Original Message-----
From: pgsql-admin-owner@postgresql.org
[mailto:pgsql-admin-owner@postgresql.org] On Behalf Of
ogjunk-pgjedan@yahoo.com
Sent: Saturday, 25 March, 2006 3:23 am
To: pgsql-admin@postgresql.org
Subject: [ADMIN] Renaming a sequence?

Hi,

I just renamed some of my tables, but I now have sequences with older names.

I followed info from
http://www.postgresql.org/docs/current/static/sql-altersequence.html :

"Some variants of ALTER TABLE can be used with    sequences as well; for
example, to rename a sequence use ALTER    TABLE RENAME"

So this is what I did:

ALTER TABLE topic_id_seq RENAME TO watchlist_id_seq;

That *appeared* to work, but I still see the old sequence name:

mydb => \d watchlist
                                     Table "public.watchlist"
Column    |            Type             |                       Modifiers
--------------+-------------------------------+-----------------------------
--------------------------
 id           | integer                      | not null default
nextval('public.topic_id_seq'::text)
...
Indexes:
    "pk_topic_id" PRIMARY KEY, btree (id)


It looks like my sequence WAS renamed, but my table's PK points to the old
sequence name, which is not supposed to exist any more.  Is there any way to
change this without killing the sequence?

Thanks,
Otis




---------------------------(end of broadcast)---------------------------
TIP 1: if posting/reading through Usenet, please send an appropriate
       subscribe-nomail command to majordomo@postgresql.org so that your
       message can get through to the mailing list cleanly

!DSPAM:14,4424b7b935047329715045!





---------------------------(end of broadcast)---------------------------
TIP 2: Don't 'kill -9' the postmaster