Re: CXambiar longitud de un campo

From: Alvaro Herrera <alvherre(at)dcc(dot)uchile(dot)cl>
To: Edwin Quijada <listas_quijada(at)hotmail(dot)com>
Cc: pgsql-es-ayuda(at)postgresql(dot)org
Subject: Re: CXambiar longitud de un campo
Date: 2004-05-07 22:39:32
Message-ID: 20040507223932.GB5936@dcc.uchile.cl
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-es-ayuda

On Fri, May 07, 2004 at 08:59:19PM +0000, Edwin Quijada wrote:

> Puedo cambiar la longitud de un varchar de 30 llevarlo a 80 pero sin tener
> que exportar ni nada de eso?

Si, aunque el procedimiento involucra alterar manualmente los catalogos
del sistema y se recomienda experimentar antes de llevarlo a cabo. Y en
todo caso, hacerlo en una transaccion y verificar que todo esta OK antes
de comprometerla.

Primero identifica el attrelid y attnum de la columna que quieres
cambiar (attrelid es el oid de la tabla en pg_class, y attnum es el
attnum de esa columna en pg_attribute).

Luego,

begin
update pg_attribute set atttypmod = 80 + 4 where attrelid=... and attnum=...
select * from <tabla>
-- verificar que todo esta ok
commit; -- o rollback

El 80 + 4 queda de ejercicio para el lector. Ojo, quizas necesites
regenerar las vistas y funciones que tengan que ver con la tabla/columna
en cuestion.

Nota que esto no funciona exactamente igual para columnas char(n) !!

Suerte,

--
Alvaro Herrera (<alvherre[a]dcc.uchile.cl>)
One man's impedance mismatch is another man's layer of abstraction.
(Lincoln Yeoh)

In response to

Browse pgsql-es-ayuda by date

  From Date Subject
Next Message Guillermo García Altamirano 2004-05-08 00:58:53 actualizar datos desde otra tabla
Previous Message Ysrael Guzman 2004-05-07 21:23:48 Re: problemas con pg_atoi