Thread: ALTER TABLE and dropping a column

ALTER TABLE and dropping a column

From
Frank Joerdens
Date:
7.1 at least doesn't seem to support a 'DROP COLUMN' command as in

ALTER TABLE foo DROP COLUMN bar;

Is there a way to do that manually and safely, e.g. by manipulating
pg_class or pg_attribute? I found a couple of threads about it dating
from way back in summer 2000 and early 2001, but nothing conclusive.

Thanks, Frank


Re: ALTER TABLE and dropping a column

From
"Josh Berkus"
Date:
Frank,

> ALTER TABLE foo DROP COLUMN bar;
> 
> Is there a way to do that manually and safely, e.g. by manipulating
> pg_class or pg_attribute? I found a couple of threads about it dating
> from way back in summer 2000 and early 2001, but nothing conclusive.

At this time, I would strongly recommend one of two approaches:

If the table has multiple constraints and other dependant objects:
1. pg_dump the database.
2. Edit the table definition and the data for the table from thepg_dump file.
3. Restore the database from pg_dump

If it doesn't:
1. Select the data for columns you want to keep into a new holdingtable.
2. Drop and re-build the table with the correct columns.
3. Insert the data from the holding table into the re-build table.
4. Drop the holding table.

It's a pain, I know, but not nearly the pain you will suffer if youstart mucking with the system tables ...

-Josh

______AGLIO DATABASE SOLUTIONS___________________________                                      Josh Berkus Complete
informationtechnology      josh@agliodbs.com  and data management solutions       (415) 565-7293 for law firms, small
businesses       fax 621-2533   and non-profit organizations.      San Francisco