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
Vous pouvez voir dans le tableau ci-dessus que j'ai utilisé le type de données - character varying
pour id
colonne. Mais c'était une erreur car je donne toujours des integers
comme id
. Donc, en utilisant varchar
voici une mauvaise pratique. Essayons donc de changer le type de colonne en integer
.
ALTER TABLE test ALTER COLUMN id TYPE integer;
Mais ça revient :
Cela signifie que nous ne pouvons pas simplement changer le type de données car les données sont déjà présentes dans la colonne. Puisque les données sont de type character varying
Postgres ne peut pas s'attendre à ce qu'il soit un entier bien que nous n'ayons entré que des entiers. Alors maintenant, comme Postgres l'a suggéré, nous pouvons utiliser le USING
expression pour convertir nos données en nombres entiers.
ALTER TABLE test ALTER COLUMN id TYPE integer USING (id::integer);
Ça marche.
Vous devez donc utiliser
alter table a.attend alter column terminal TYPE INTEGER USING (terminal::integer) ;