Re: [pgsql-es-ayuda] Consulta sobre modificación de tipo en un campo

From: Lisibeth Troconis <lisibeth(dot)troconis(at)gmail(dot)com>
To: Adrian Misael Peña Montero <ampena(at)uci(dot)cu>
Cc: postgreSQL <pgsql-es-ayuda(at)postgresql(dot)org>
Subject: Re: [pgsql-es-ayuda] Consulta sobre modificación de tipo en un campo
Date: 2011-09-22 14:06:20
Message-ID: CACpT28wab4USGgMfqdxOAWgFGEyN2WJuhVdKyOdMgE0PyQJNFA@mail.gmail.com
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-es-ayuda

mmm eso estaba pensando, aunque hubiera preferido que fuera otra
la opción :(

muchas gracias

El 22 de septiembre de 2011 09:33, Adrian Misael Peña Montero <ampena(at)uci(dot)cu
> escribió:

> La otra opción que se me ocurre es que le añadas a tu tabla una columna
> temporal de tipo BIGINT y programes una función que te inserte en esa
> columna el valor de la columna a la que quieres hacerle el ALTER, tendrías
> que hacer un typecast para convertir el VARCHAR a BIGINT. Posteriormente
> solo te quedaría borrar la columna VARCHAR y renombrar la temporal para que
> quede como deseas.
>
> Saludos
>
> ----- Mensaje original -----
> De: "Lisibeth Troconis" <lisibeth(dot)troconis(at)gmail(dot)com>
> Para: "Adrian Misael Peña Montero" <ampena(at)uci(dot)cu>
> CC: "postgreSQL" <pgsql-es-ayuda(at)postgresql(dot)org>
> Enviados: Jueves, 22 de Septiembre 2011 9:25:20 GMT -04:30 Caracas
> Asunto: Re: [pgsql-es-ayuda] Consulta sobre modificación de tipo en un
> campo
>
> en la segunda no es posible esa base de datos esta en producción, el campo
> que estoy adicionando no, y allí si tengo libertad de hacerlo, es muy muy
> seguro que no puedo hacer el cambio????
>
>
> El 22 de septiembre de 2011 09:22, Adrian Misael Peña Montero <
> ampena(at)uci(dot)cu > escribió:
>
>
> El ALTER no lo puede hacer de VARCHAR a BIGINT, pero de BIGINT a VARCHAR
> sí, valora el costo de realizar el ALTER en la segunda tabla que mencionas.
>
> Saludos
>
> ----- Mensaje original -----
> De: "Lisibeth Troconis" < lisibeth(dot)troconis(at)gmail(dot)com >
> Para: "postgreSQL" < pgsql-es-ayuda(at)postgresql(dot)org >
> Enviados: Jueves, 22 de Septiembre 2011 9:16:04 GMT -04:30 Caracas
> Asunto: [pgsql-es-ayuda] Consulta sobre modificación de tipo en un campo
>
>
>
>
> Saludos!
>
>
> Necesito por favor saber si puedo cambiar un tipo de dato character
> varchar(50) a bigint sin perder los datos que tengo
>
>
>
>
> ALTER TABLE mensajes ALTER COLUMN prefijo TYPE bigint
>
>
>
>
> Poniéndolos en contexto tengo una tabla mensaje que guarda un número
> telefónico formato internacional ejemplo 58261xxxxxxx , por razones que
> siempre pasa al momento de diseñar la base de datos no se pensó que en algún
> momento se quisiera realizar la consulta sobre esta tabla, sobre el prefijo,
> osea no interesa el número completo, realizar esta consulta sobre la tabla
> resulta muy costosa, pues posee demasiados registros, la opción que pensamos
> fue crear un campo adicional y realizar el siguiente query
>
>
> update mensaje set prefijo=
> (select num from Prefijo where mensaje.dest like num || '%' limit 1)
> where mensaje.id in (
> select m.id from mensaje m where m.refproveedor is not null and m.prefijo
> is null
> limit 5000
> )
>
>
> se realizo el cambio en un script por segmentos de 5000 mil registros cada
> vez
>
>
> pero pequeño detalle, al agregar la columna la agregamos como character
> varchar(50) pues parecía lo lógico ya que en la tabla mensaje el numero se
> almacena en un character varchar(255), pero resulta que tenemos otra tabla
> donde se tienen los prefijos y en esta tabla el prefijo es un bitint
>
>
> bueno el punto es que por los momentos quiero convertir este campo, para
> luego hacer el indice y realizar comparaciones contra esta otra tabla sin
> tener muchos líos
>
>
> La pregunta en concreto es esa, como realizar el cambio sin perder los
> datos, y cualquier otro aporte que me de luz al respecto de lo que deseo
> hacer
>
>
>
>
> muchas gracias! espero respuestas =)
>
>
>
>
> --
> Lisibeth Troconis
>
>
>
>
> --
> Lisibeth Troconis
>

--
Lisibeth Troconis

In response to

Browse pgsql-es-ayuda by date

  From Date Subject
Next Message Alvaro Herrera 2011-09-22 14:06:46 Re: Consulta sobre modificación de tipo en un campo
Previous Message Lazaro Rubén García Martinez 2011-09-22 14:06:14 RE: [pgsql-es-ayuda] Consulta sobre modificación de tipo en un campo