Consulta sobre modificación de tipo en un campo

From: Lisibeth Troconis <lisibeth(dot)troconis(at)gmail(dot)com>
To: postgreSQL <pgsql-es-ayuda(at)postgresql(dot)org>
Subject: Consulta sobre modificación de tipo en un campo
Date: 2011-09-22 13:46:04
Message-ID: CACpT28w3GRuOyggHcuRf0qo0EKHpAHRF7y3KRv9jnonucjE5Og@mail.gmail.com
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-es-ayuda

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

Responses

Browse pgsql-es-ayuda by date

  From Date Subject
Next Message Adrian Misael Peña Montero 2011-09-22 13:52:27 Re: Consulta sobre modificación de tipo en un campo
Previous Message Sergio Valdes Hurtado 2011-09-22 12:33:42 Re: Rendimiento Query