PostgreSQL カラムのデータ型変更の方法
基本的に変更前と変更後のデータ型に互換性がある場合は次のクエリで実施可能(例えばintからbigintへの変更等)
ALTER TABLE [対象テーブル名] ALTER COLUMN [対象列名] TYPE [新しいデータ型];
クエリを実施する以外にGUIツール等でも変更が可能。
しかし、変更前と変更後で互換性がない場合は上記のクエリでデータ型の変更は実施できない。GUIでもおそらく不可能だろう。
互換性のないデータ型変更
例えば元々TestテーブルのColumn001のデータ型をtextからintに変更しようとした場合、下記のエラーが出力されるだろう。
ERROR: column “Column001” cannot be cast to type int
この様に互換性のないデータ型で変更する場合は以下のクエリの実行が必要
ALTER TABLE Test
ALTER COLUMN Column001 TYPE int USING Column001::int;
USINGを使用して変更後のデータ型を明示的に記載する必要がある。