[PostgreSQL]ALTER TABLEでカラムのデータ型を変更しようとして"cannot be cast to type integer"が出た場合の対処法

text型のカラムをINTEGER型に変更しようとしたら、エラーが出ました。
ALTER TABLE tbl  ALTER COLUMN foo TYPE integer ;

ERROR:  column "foo" cannot be cast to type integer
こういう場合は、USING句を使って明示的に型変換してやる必要があるみたいです。
ALTER TABLE tbl ALTER COLUMN foo TYPE integer USING foo::int ;
これでうまく行きました。
参考
http://archives.postgresql.org/pgsql-admin/2009-08/msg00156.php
カテゴリ: