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

Skift kolonnedatatype fra tekst til heltal i PostgreSQL

create table test(id varchar );
insert into test values('1');
insert into test values('11');
insert into test values('12');

select * from test

 --Result--
 id
 character varying
--------------------------
 1
 11
 12

Du kan se fra ovenstående tabel, at jeg har brugt datatypen – character varying for id kolonne. Men det var en fejl, fordi jeg altid giver integers som id . Så ved at bruge varchar her er en dårlig praksis. Så lad os prøve at ændre kolonnetypen til integers .

ALTER TABLE test ALTER COLUMN id TYPE integer;

Men det returnerer:

Det betyder, at vi ikke bare kan ændre datatypen, fordi data allerede er der i kolonnen. Da dataene er af typen character varying Postgres kan ikke forvente det som heltal, selvom vi kun indtastede heltal. Så nu, som Postgres foreslog, kan vi bruge USING udtryk for at støbe vores data til heltal.

ALTER TABLE test ALTER COLUMN id  TYPE integer USING (id::integer);

Det virker.

Så du bør bruge

alter table a.attend alter column terminal TYPE INTEGER  USING (terminal::integer) ;



  1. Joomla:Ringehjælperfunktion inde fra en model?

  2. En syntaks til tilpasset doven-evaluering/kortslutning af funktionsparametre

  3. Sådan fungerer COUNT() i SQL Server

  4. CakePHP HTML-tilbudskodningsproblemer