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.troco...@gmail.com>
Para: "postgreSQL" <pgsql-es-ayuda@postgresql.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 
-
Enviado a la lista de correo pgsql-es-ayuda (pgsql-es-ayuda@postgresql.org)
Para cambiar tu suscripci�n:
http://www.postgresql.org/mailpref/pgsql-es-ayuda

Responder a