PostgreSQL カラムのデータ型を変更する

カラムのデータ型を変更する

PostgreSQLで、カラムのデータ型を変更する必要があったのでメモ。

バージョン8.0以降
ALTER TABLE テーブル名 ALTER カラム名 TYPE 新しい型;
バージョン7以前

カラムの追加、データのコピー、カラムの削除、カラムのリネームという手順でやる必要があるようです。

BEGIN;
ALTER TABLE テーブル名 ADD COLUMN  カラム名_tmp 新しい型;
UPDATE テーブル名 SET カラム名_tmp = CAST(カラム名 AS 新しい型);
ALTER TABLE テーブル名 DROP COLUMN カラム名;
ALTER TABLE テーブル名 RENAME カラム名_tmp TO カラム名;
COMMIT;

こちらは試していませんが、念のためメモ。