sql >> Databáze >  >> RDS >> PostgreSQL

Změňte datový typ sloupce z Text na Integer v 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

Z výše uvedené tabulky můžete vidět, že jsem použil datový typ – character varying pro id sloupec. Ale byla to chyba, protože vždy dávám integers jako id . Tedy pomocí varchar tady je špatná praxe. Zkusme tedy změnit typ sloupce na integer .

ALTER TABLE test ALTER COLUMN id TYPE integer;

Ale vrátí:

To znamená, že nemůžeme jednoduše změnit typ dat, protože data ve sloupci již jsou. Protože data jsou typu character varying Postgres to nemůže očekávat jako celé číslo, i když jsme zadali pouze celá čísla. Takže nyní, jak navrhl Postgres, můžeme použít USING výraz pro přetypování našich dat na celá čísla.

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

Funguje to.

Měli byste tedy použít

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



  1. Jak najít umístění datových souborů a souborů protokolu na serveru SQL Server

  2. připojení k databázi quickbooks přes odbc s php?

  3. Generování dat mezi dvěma daty

  4. Připojení k databázi SQL Server 2012 pomocí jazyka C# (Visual Studio 2012)