PostgreSQL
 sql >> Base de Dados >  >> RDS >> PostgreSQL

Como alterar o tipo de dados da coluna de caractere para numérico no PostgreSQL 8.4


Você pode tentar usar USING :

O opcional USING cláusula especifica como calcular o novo valor da coluna a partir do antigo; se omitido, a conversão padrão é a mesma que uma conversão de atribuição do tipo de dados antigo para o novo. A USING A cláusula deve ser fornecida se não houver conversão implícita ou de atribuição do tipo antigo para o novo.

Portanto, isso pode funcionar (dependendo dos seus dados):
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);

Isso falhará se você tiver algo em code que não pode ser convertido em numérico; se o USING falhar, você terá que limpar os dados não numéricos manualmente antes de alterar o tipo de coluna.