[Pgsql-ayuda] eliminar columnas

Gunnar Wolf gwolf@campus.iztacala.unam.mx
Wed, 19 Jun 2002 08:49:56 -0500 (CDT)


> Hola, supongo que se deber=EDa eliminar una columna con:
>
> =09ALTER TABLE mitabla DROP micolumna
>
> pero no funciona.
>
> =09Podr=EDa hacer un pg_dump y tratar los datos con awk o cut. Pero hay
> alguna forma de hacerlo m=E1s facil, como ser un dump sin alguna columna?
>
> =09Desde ya muchas gracias

No puedes -hasta donde entiendo- quitar columnas de una tabla. Lo que s=ED
puedes hacer es crear una segunda tabla, copiar la informaci=F3n necesaria,
borrar la primera y renombrar la segunda con el nombre de la primera:

base_datos# \d tabla
   Column |   Type
----------+----------
 id_cosa  | smallint
 descrip  | character(15)
 inutil   | integer

base_datos# CREATE TABLE tabla_tmp (id_cosa smallint, descrip character(15)=
);
CREATE
base_datos# INSERT INTO tabla_tmp SELECT id_cosa, descrip FROM tabla;
INSERT 73145 38
base_datos# DROP TABLE tabla;
DROP
base_datos# ALTER TABLE tabla_tmp RENAME TO tabla;

Claro, si tienes triggers, referencias y dem=E1s, no va a ser tan f=E1cil..=
=2E
Pero seguro encuentras modo ;-)

--=20
Gunnar Wolf - gwolf@campus.iztacala.unam.mx - (+52-55)5623-1118
PGP key 1024D/8BB527AF 2001-10-23
Fingerprint: 0C79 D2D1 2C4E 9CE4 5973  F800 D80E F35A 8BB5 27AF