PostgreSQL
 sql >> Baza danych >  >> RDS >> PostgreSQL

Zmień typ danych kolumny z Text na Integer w 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

W powyższej tabeli widać, że użyłem typu danych – character varying dla id kolumna. Ale to był błąd, ponieważ zawsze podaję integers jako id . Więc używając varchar oto zła praktyka. Spróbujmy więc zmienić typ kolumny na integer .

ALTER TABLE test ALTER COLUMN id TYPE integer;

Ale zwraca:

Oznacza to, że nie możemy po prostu zmienić typu danych, ponieważ dane są już w kolumnie. Ponieważ dane są typu character varying Postgres nie może oczekiwać, że będzie to liczba całkowita, chociaż wprowadziliśmy tylko liczby całkowite. Więc teraz, jak zasugerował Postgres, możemy użyć USING wyrażenie do rzutowania naszych danych na liczby całkowite.

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

To działa.

Powinieneś więc użyć

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



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. W jaki sposób PostgreSQL wymusza ograniczenie UNIQUE / jakiego rodzaju indeksu używa?

  2. Odmowa pozwolenia dla związku

  3. Postgres Query JSON Array, który zawiera coś

  4. agregat pustego zbioru wyników

  5. Zapytanie o liczbę różnych wartości w kroczącym zakresie dat