Re: [Pgsql-ayuda] Cambio de tipo char a varchar

From: "Guillermo Schulman" <guillepsql(at)hotmail(dot)com>
To: pgsql-ayuda(at)tlali(dot)iztacala(dot)unam(dot)mx
Subject: Re: [Pgsql-ayuda] Cambio de tipo char a varchar
Date: 2003-08-05 18:26:43
Message-ID: Law12-F126tAyD7TfSr0002b816@hotmail.com
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-es-ayuda

Es posible el mismo tipo de solución para cambiar de un numeric(6,2) a un
numeric(8,2) ?
Gracias.

>From: Alvaro Herrera <alvherre(at)dcc(dot)uchile(dot)cl>
>To: "Alfonso Andaur L." <postgresql(at)creasoluciones(dot)cl>
>CC: pgsql-ayuda(at)tlali(dot)iztacala(dot)unam(dot)mx
>Subject: Re: [Pgsql-ayuda] Cambio de tipo char a varchar
>Date: Mon, 4 Aug 2003 21:06:50 -0400
>
>On Mon, Aug 04, 2003 at 04:28:25PM -0400, Alfonso Andaur L. wrote:
> > > Buenas ante todo quisiera saber si existe alguna manera de cambiar un
> > > tipo de un campo, es decir, tengi un campo codigo que esta declarado
> > > como char pero lo que deseo es que este sea varchar.
>
> > 2. cambiando en nombre de tu campo a cualquier cosa (por ejemplo
>"basura") y
> > luego crear el campo nuevamente pero según la definición correcta.
>
>O botando el campo... (sólo en 7.3):
>ALTER TABLE tabla DROP COLUMN columna-antigua
>
>(pero naturalmente antes de eso se debe crear la nueva columna y copiar
>los datos de una a otra).
>
>
>En realidad hay otro mecanismo, más peligroso pero más sencillo:
>
>alvh=# CREATE TABLE test (a char(25));
>CREATE TABLE
>alvh=# \d test
> Table "public.test"
> Column | Type | Modifiers
>--------+---------------+-----------
> a | character(25) |
>
>alvh=# BEGIN;
>BEGIN
>alvh=# UPDATE pg_attribute SET atttypid='varchar'::regtype
> WHERE attrelid='test'::regclass AND attname='a';
>UPDATE 1
>alvh=# \d test
> Table "public.test"
> Column | Type | Modifiers
>--------+-----------------------+-----------
> a | character varying(25) |
>
>alvh=# UPDATE test SET a=a;
>UPDATE
>alvh=# SELECT a FROM test; -- verificar que los datos
> -- estan OK
>alvh=# COMMIT;
>COMMIT
>alvh=# VACUUM FULL test;
>VACUUM
>
>Hay que ser cuidadoso con no hacer estas cosas fuera de una transacción,
>y no hacer COMMIT hasta no estar bien seguro de que el resultado es
>correcto!! (i.e. si pierdes datos la culpa es tuya).
>
>Mucho ojo, esto solo funciona con algunos tipos de datos, es decir no
>trates de pasar una columna INTEGER a TEXT ni cosas similares.
>
>--
>Alvaro Herrera (<alvherre[a]dcc.uchile.cl>)
>"Cuando mañana llegue pelearemos segun lo que mañana exija" (Mowgli)
>_______________________________________________
>Pgsql-ayuda mailing list
>Pgsql-ayuda(at)tlali(dot)iztacala(dot)unam(dot)mx
>http://tlali.iztacala.unam.mx/mailman/listinfo/pgsql-ayuda

_________________________________________________________________
Charla con tus amigos en línea mediante MSN Messenger:
http://messenger.yupimsn.com/

Browse pgsql-es-ayuda by date

  From Date Subject
Next Message Washington Vargas Prada 2003-08-05 21:24:33 [Pgsql-ayuda] ERROR: Parser: parse error en Create Database
Previous Message Alvaro Herrera Munoz 2003-08-05 18:10:22 Re: [Pgsql-ayuda] Tipo de datos para Primary Key