postgresql version 8.0 e successive
Nel database postgresql il comando per modificare il datatype
di una colonna non e' il classico
alter nometabella modify nomecolonna ...
che si usa in oracle o mysql
A partire dalla versione 8.0 di postgresql
e' stato introdotto :
alter table nometabella alter column nomecolonna type ...
Si riceve un errore quando si cerca di modificare una colonna di tipo char in integer :
ERROR: column nomecolonna cannot be cast to type integer
Per risolvere l' errore
alter table nometabella alter column nomecolonna type integer using function1(nomecolonna)
dove function1 e' una funzione che converte da char a integer
Non serve usare una funzione
quando si convertono datatype di tipo numerico (ad esempio smallint in double precision)
o quando si convertono datatype di tipo character (ad esempio char(2) in text)
o quando si convertono datatype misti (ad esempio integer in varchar(9) )
Nella maggioranza dei casi non serve usare una funzione