PostgreSQL:カラムのデータタイプを変更

ユースケースとしては、ユーザの電話番号のカラムは固定電話の10桁数字を前提にされていて、携帯の11桁電話番号を登録しようとしたら失敗。8系列ではテーブルを直接変更出来るのだけど、7系列では少し面倒。

PostgreSQL公式サイトのFAQにもある “How do you change a column’s data type?”

PostgreSQL 8.* 以降

ALTER TABLE tab ALTER COLUMN old_col  new_data_type;

PostgreSQL 7.*系列

BEGIN;
ALTER TABLE tab ADD COLUMN new_col new_data_type;
UPDATE tab SET new_col = CAST(old_col AS new_data_type);
ALTER TABLE tab DROP COLUMN old_col;
COMMIT;
Advertisements
Tagged with:
Posted in database

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s

Archives
%d bloggers like this: