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) ;