PostgreSQL
 sql >> база данни >  >> RDS >> PostgreSQL

Променете типа данни на колоната от Text на Integer в 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

Можете да видите от горната таблица, че съм използвал типа данни – character varying за id колона. Но беше грешка, защото винаги давам integers като id . И така, използвайки varchar ето една лоша практика. Така че нека се опитаме да променим типа на колоната на integer .

ALTER TABLE test ALTER COLUMN id TYPE integer;

Но връща:

Това означава, че не можем просто да променим типа данни, защото данните вече са там в колоната. Тъй като данните са от тип character varying Postgres не може да го очаква като цяло число, въпреки че въведохме само цели числа. Така че сега, както предложи Postgres, можем да използваме USING израз за преобразуване на нашите данни в цели числа.

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

Работи.

Така че трябва да използвате

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. Най-добрите решения за висока достъпност за клъстериране на PG за PostgreSQL

  2. postgreSQL Fibonacci Sequence - Заявката няма местоназначение за данните за резултатите

  3. Използване на pyspark за свързване с PostgreSQL

  4. Има ли добри PostgreSQL клиенти за linux?

  5. Агрегирани колони с допълнителни (отличителни) филтри