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