sql >> Database >  >> RDS >> PostgreSQL

Wijzig kolomgegevenstype van Tekst naar Integer in 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

U kunt aan de bovenstaande tabel zien dat ik het gegevenstype heb gebruikt - character varying voor id kolom. Maar het was een vergissing, want ik geef altijd integers als id . Dus met behulp van varchar hier is een slechte gewoonte. Dus laten we proberen het kolomtype te veranderen in integer .

ALTER TABLE test ALTER COLUMN id TYPE integer;

Maar het komt terug:

Dat betekent dat we het gegevenstype niet zomaar kunnen wijzigen, omdat er al gegevens in de kolom staan. Aangezien de gegevens van het type zijn character varying Postgres kan het niet als geheel getal verwachten, hoewel we alleen gehele getallen hebben ingevoerd. Dus nu, zoals Postgres suggereerde, kunnen we de USING . gebruiken expressie om onze gegevens in gehele getallen te gieten.

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

Het werkt.

Dus je moet

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



  1. Een formulier maken in APEX om variabelen in een query in te stellen voor een interactief rapport

  2. InMemory DUPLICATE Verwarring in Oracle RAC

  3. update orakel statement werkt niet

  4. postgresql - booleaanse kolom toevoegen aan tabel, standaard instellen