Обсуждение: ALTER TABLE RENAME column
Any reason not to support renaming columns? Can this be added to TODO? -- Jim Nasby jim@nasby.net EnterpriseDB http://enterprisedb.com 512.569.9461 (cell)
Вложения
Jim Nasby <decibel@decibel.org> writes:
> Any reason not to support renaming columns? Can this be added to TODO?
Uh, we did that years ago.
regards, tom lane
Jim Nasby wrote: > Any reason not to support renaming columns? Can this be added to > TODO? Upgrade to Postgres95. -- Peter Eisentraut http://developer.postgresql.org/~petere/
Peter Eisentraut wrote: > Jim Nasby wrote: >> Any reason not to support renaming columns? Can this be added to >> TODO? > > Upgrade to Postgres95. Hey, is Jim running MySQL 5? -- Richard Huxton Archonet Ltd
On 11/16/06, Jim Nasby <decibel@decibel.org> wrote: > Any reason not to support renaming columns? Can this be added to TODO? ALTER TABLE yo_table RENAME COLUMN yo_column TO yo_new_column; ? -- Jonah H. Harris, Software Architect | phone: 732.331.1300 EnterpriseDB Corporation | fax: 732.331.1301 33 Wood Ave S, 2nd Floor | jharris@enterprisedb.com Iselin, New Jersey 08830 | http://www.enterprisedb.com/
Jonah H. Harris wrote: > On 11/16/06, Jim Nasby <decibel@decibel.org> wrote: >> Any reason not to support renaming columns? Can this be added to TODO? > > ALTER TABLE yo_table RENAME COLUMN yo_column TO yo_new_column; > Maybe Jim actually wants a reason to remove support for this ... :-) cheers andrew
> Uh, we did that years ago.
Really?
+ o Add ALTER TABLE RENAME COLUMN (should rename appropriate sequences and constraints)
Sounds like this is not done, at least not renaming sequencens and constraints, or am I wrong here?
RegardMario Weilguni
-----Ursprüngliche Nachricht-----
Von: pgsql-hackers-owner@postgresql.org [mailto:pgsql-hackers-owner@postgresql.org] Im Auftrag von Tom Lane
Gesendet: Freitag, 17. November 2006 07:05
An: Jim Nasby
Cc: PostgreSQL Hackers
Betreff: Re: [HACKERS] ALTER TABLE RENAME column
Jim Nasby <decibel@decibel.org> writes:
> Any reason not to support renaming columns? Can this be added to TODO?
Uh, we did that years ago.
regards, tom lane
---------------------------(end of broadcast)---------------------------
TIP 5: don't forget to increase your free space map settings
On 11/17/06, Mario Weilguni <mario.weilguni@icomedias.com> wrote: > Sounds like this is not done, at least not renaming sequencens and constraints, or am I wrong here? To rename a sequence or a table: ALTER TABLE yo_table RENAME TO yo_new_table; ALTER TABLE yo_sequence RENAME TO yo_new_sequence; Or am I mistaken? -- Jonah H. Harris, Software Architect | phone: 732.331.1300 EnterpriseDB Corporation | fax: 732.331.1301 33 Wood Ave S, 2nd Floor | jharris@enterprisedb.com Iselin, New Jersey 08830 | http://www.enterprisedb.com/
On 11/17/06, Mario Weilguni <mario.weilguni@icomedias.com> wrote: > + o Add ALTER TABLE RENAME COLUMN (should rename appropriate sequences and constraints) Actually, I don't believe it cascades the rename automagically... if that's what you're asking. -- Jonah H. Harris, Software Architect | phone: 732.331.1300 EnterpriseDB Corporation | fax: 732.331.1301 33 Wood Ave S, 2nd Floor | jharris@enterprisedb.com Iselin, New Jersey 08830 | http://www.enterprisedb.com/
Right, but I think jim means automatical renames of sequences, and especially something like this:
db=# CREATE TABLE foo (bar serial);
NOTICE: CREATE TABLE will create implicit sequence "foo_bar_seq" for serial column "foo.bar"
CREATE TABLE
db=# ALTER TABLE foo rename bar to baf;
ALTER TABLE
db=# \d foo Table "public.foo"Column | Type | Modifiers
--------+---------+---------------------------------------------------baf | integer | not null default
nextval('foo_bar_seq'::regclass)
The sequence still is named "foo_bar_seq".
IMO this should do:
Alter sequence foo_bar_seq rename to foo_baf_seq;
Alter table foo alter baf set default nextval('foo_baf_seq')
-----Ursprüngliche Nachricht-----
Von: Jonah H. Harris [mailto:jonah.harris@gmail.com]
Gesendet: Freitag, 17. November 2006 16:27
An: Mario Weilguni
Cc: Tom Lane; Jim Nasby; PostgreSQL Hackers
Betreff: Re: [HACKERS] ALTER TABLE RENAME column
On 11/17/06, Mario Weilguni <mario.weilguni@icomedias.com> wrote:
> Sounds like this is not done, at least not renaming sequencens and constraints, or am I wrong here?
To rename a sequence or a table:
ALTER TABLE yo_table RENAME TO yo_new_table; ALTER TABLE yo_sequence RENAME TO yo_new_sequence;
Or am I mistaken?
--
Jonah H. Harris, Software Architect | phone: 732.331.1300
EnterpriseDB Corporation | fax: 732.331.1301
33 Wood Ave S, 2nd Floor | jharris@enterprisedb.com
Iselin, New Jersey 08830 | http://www.enterprisedb.com/
"Mario Weilguni" <mario.weilguni@icomedias.com> writes:
> IMO this should do:
> Alter sequence foo_bar_seq rename to foo_baf_seq;
> Alter table foo alter baf set default nextval('foo_baf_seq')
No, it should not, because that risks breaking other references to the
sequence (eg, in user-written functions). If the user is feeling that
he wants consistency, he can rename the sequence himself and take
responsibility for any side-effects on his code.
regards, tom lane
On 11/17/06, Tom Lane <tgl@sss.pgh.pa.us> wrote: > No, it should not, because that risks breaking other references to the > sequence (eg, in user-written functions). If the user is feeling that > he wants consistency, he can rename the sequence himself and take > responsibility for any side-effects on his code. I concur. -- Jonah H. Harris, Software Architect | phone: 732.331.1300 EnterpriseDB Corporation | fax: 732.331.1301 33 Wood Ave S, 2nd Floor | jharris@enterprisedb.com Iselin, New Jersey 08830 | http://www.enterprisedb.com/
On Nov 17, 2006, at 9:47 AM, Jonah H. Harris wrote: > On 11/16/06, Jim Nasby <decibel@decibel.org> wrote: >> Any reason not to support renaming columns? Can this be added to >> TODO? > > ALTER TABLE yo_table RENAME COLUMN yo_column TO yo_new_column; Oooops... now I see where it's listed in \h. I knew I must have been missing something... -- Jim Nasby jim@nasby.net EnterpriseDB http://enterprisedb.com 512.569.9461 (cell)