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
Sie können aus der obigen Tabelle ersehen, dass ich den Datentyp – character varying
verwendet habe für id
Säule. Aber es war ein Fehler, weil ich immer integers
gebe als id
. Also mit varchar
hier ist eine schlechte Praxis. Versuchen wir also, den Spaltentyp in integer
zu ändern .
ALTER TABLE test ALTER COLUMN id TYPE integer;
Aber es gibt zurück:
Das bedeutet, dass wir den Datentyp nicht einfach ändern können, da Daten bereits in der Spalte vorhanden sind. Da die Daten vom Typ character varying
sind Postgres kann es nicht als Ganzzahl erwarten, obwohl wir nur Ganzzahlen eingegeben haben. Also, wie Postgres vorgeschlagen hat, können wir jetzt den USING
verwenden Ausdruck, um unsere Daten in Ganzzahlen umzuwandeln.
ALTER TABLE test ALTER COLUMN id TYPE integer USING (id::integer);
Es funktioniert.
Sie sollten also
verwendenalter table a.attend alter column terminal TYPE INTEGER USING (terminal::integer) ;