From: | MIGUEL CANCHAS <mcanchas(at)tsr(dot)com(dot)pe> |
---|---|
To: | 'Marcos Saldivar' <baron(dot)rojo(dot)cuerdas(dot)de(dot)acero(at)gmail(dot)com>, Jaime Casanova <systemguards(at)gmail(dot)com> |
Cc: | "Mario Reyes (GENESYS)" <Genesys3(at)celulosa(dot)cmpc(dot)cl>, pgsql-es-ayuda(at)postgresql(dot)org |
Subject: | RE: sobre ALTER TABLE |
Date: | 2008-05-28 15:28:56 |
Message-ID: | 410117BB01F4D611B73A00010331DD2404B52D37@tsnt.tsr.com.pe |
Views: | Raw Message | Whole Thread | Download mbox | Resend email |
Thread: | |
Lists: | pgsql-es-ayuda |
no seria mejor crear una columna con el tipo de dato que necesita y
adicionarle los datos "casteados" desde la columna a "dropear"
Miguel Canchas
-----Mensaje original-----
De: Marcos Saldivar [mailto:baron(dot)rojo(dot)cuerdas(dot)de(dot)acero(at)gmail(dot)com]
Enviado el: Miércoles, 28 de Mayo de 2008 10:25 a.m.
Para: Jaime Casanova
CC: Mario Reyes (GENESYS); pgsql-es-ayuda(at)postgresql(dot)org
Asunto: Re: [pgsql-es-ayuda] sobre ALTER TABLE
2008/5/28 Jaime Casanova <systemguards(at)gmail(dot)com>:
> On Wed, May 28, 2008 at 8:22 AM, Marcos Saldivar
> <baron(dot)rojo(dot)cuerdas(dot)de(dot)acero(at)gmail(dot)com> wrote:
>> 2008/5/28 Jaime Casanova <systemguards(at)gmail(dot)com>:
>>> On Tue, May 27, 2008 at 11:00 PM, Mario Reyes (GENESYS)
>>> <Genesys3(at)celulosa(dot)cmpc(dot)cl> wrote:
>>>>
>>>> ALTER TABLE "public"."presupuestos" ALTER COLUMN "pres_fecha_inicio"
TYPE
>>>> DATE;
>>>>
>>>> ERROR: column "pres_fecha_inicio" cannot be cast to type "date"
>>>>
>>>> La pregunta por lo tanto es Cual es la manera correcta de hacer el
Cast?. He
>>>> intentado con el USING de acuerdo a la documentación.
>>>>
>>>> ALTER TABLE "public"."presupuestos" ALTER COLUMN "pres_fecha_inicio"
TYPE
>>>> date USING "pres_fecha_inicio"::date;
>>>>
>>>> Sin embargo aparece otro error:
>>>> ERROR: cannot cast type time without time zone to date
>>>> (0,547 sec)
>>>>
>>>
>>> Si en esa columna aun no has grabado ningun dato, puedes hacer:
>>> ALTER TABLE "public"."presupuestos"
>>> ALTER COLUMN "pres_fecha_inicio" TYPE date USING NULL;
>>>
>>> Si ya hay datos, ahi si esta fregada la cosa...
>>
>> por qué ? acaso no puede hacer un simple drop de esa columna ?
>
> si, se puede...
> pero el ALTER TABLE tambien funciona con el USING NULL aunque tenga
> datos la columna, pero pierde los datos
>
>> imagino que si necesita un date, no puede tener mas que poca valides
>> la info de esa columna si es time
>
> ese es mi punto, esos datos son como poco no validos y seguramente no
> habra forma segura o confiable de recuperarlos como date... en otras
> palabras que ya los perdio...
entonces que use lo que le recomiendas que es mucho mas elegante que
lo que hacia yop de un drop column y luego un add column je je je
ALTER TABLE "public"."presupuestos" ALTER COLUMN "pres_fecha_inicio"
TYPE date USING NULL;
saludos.-
>
>
> --
> Atentamente,
> Jaime Casanova
> Soporte y capacitación de PostgreSQL
> Guayaquil - Ecuador
> Cel. (593) 087171157
>
--
TIP 6: ¿Has buscado en los archivos de nuestra lista de correo?
http://archives.postgresql.org/pgsql-es-ayuda
From | Date | Subject | |
---|---|---|---|
Next Message | Antonio Galicia | 2008-05-28 15:38:30 | Re: Uso de ora2pg |
Previous Message | Marcos Saldivar | 2008-05-28 15:24:56 | Re: sobre ALTER TABLE |