PostgreSQL
 sql >> Database >  >> RDS >> PostgreSQL

Come modificare il tipo di dati della colonna da carattere a numerico in PostgreSQL 8.4

Puoi provare a utilizzare USING :

Il USING facoltativo la clausola specifica come calcolare il nuovo valore della colonna dal vecchio; se omessa, la conversione predefinita è la stessa di un cast di assegnazione dal vecchio tipo di dati al nuovo. Un USING la clausola deve essere fornita se non è presente un cast implicito o di assegnazione dal vecchio al nuovo tipo.

Quindi questo potrebbe funzionare (a seconda dei tuoi dati):

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);

Questo fallirà se hai qualcosa in code che non può essere convertito in numerico; se USING fallisce, dovrai ripulire manualmente i dati non numerici prima di modificare il tipo di colonna.