sql >> Databasteknik >  >> RDS >> PostgreSQL

Ändra kolumndatatyp från text till 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 från tabellen ovan att jag har använt datatypen – character varying för id kolumn. Men det var ett misstag eftersom jag alltid ger integers som id . Så använder varchar här är en dålig praxis. Så låt oss försöka ändra kolumntypen till integers .

ALTER TABLE test ALTER COLUMN id TYPE integer;

Men den returnerar:

Det betyder att vi inte bara kan ändra datatypen eftersom data redan finns där i kolumnen. Eftersom data är av typen character varying Postgres kan inte förvänta sig det som heltal även om vi bara angav heltal. Så nu, som Postgres föreslog, kan vi använda USING uttryck för att gjuta våra data till heltal.

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

Det fungerar.

Så du bör använda

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



  1. Vilken datatyp ska användas för en beskrivning?

  2. Kod för att anropa en funktion i ett paket från C# och ODP.NET

  3. MySQL max_user_connections vs max_connections

  4. Hur man hittar tabeller som innehåller en specifik kolumn i SQL Server