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)
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 |