sql >> Base de Datos >  >> RDS >> PostgreSQL

Cómo cambiar el tipo de datos de la columna de carácter a numérico en PostgreSQL 8.4

Puedes intentar usar USING :

El USING opcional cláusula especifica cómo calcular el valor de la nueva columna a partir de la antigua; si se omite, la conversión predeterminada es la misma que una conversión de asignación del tipo de datos antiguo al nuevo. A USING se debe proporcionar la cláusula si no hay conversión implícita o de asignación del tipo antiguo al nuevo.

Así que esto podría funcionar (dependiendo de tus datos):

alter table presales alter column code type numeric(10,0) using code::numeric;
-- Or if you prefer standard casting...
alter table presales alter column code type numeric(10,0) using cast(code as numeric);

Esto fallará si tiene algo en code que no se puede convertir a numérico; si USING falla, tendrá que limpiar los datos no numéricos a mano antes de cambiar el tipo de columna.