[pgsql-jp: 29536] Re: 定義済みテーブル中カラムの型変換について
T.Suzuki
t_suzuki @ kenwood-eng.co.jp
2003年 4月 1日 (火) 14:08:21 JST
鈴木と申します。
> 外川と申します。
> 現在、社内システムを構築しております。
> 定義済みのテーブル中のカラムの型を
> varchar型 → password型
> に変換するにはどうしたらよいでしょうか?
PostgreSQLのバージョンはいくつでしょうか?
7.3以降の場合、DROP COLUMNがサポートされているので、
#データを全てバックアップ
ALTER TABLE table_name DROP COLUMN column_name;
ALTER TABLE table_name ADD COLUMN column_name password;
(COLUMNキーワードは省略可能)
#バックアップファイルからリストア
と、型を変えたい列だけ再作成すれば良いのでは無いでしょうか?
ただし、主キー、もしくは外部キーで無い事が前提になってしまいます。
バックアップもしたくない場合もあると思いますが、その場合私は、
ALTER TABLE table_name ADD COLUMN column_new_name password;
#UPDATE 文で columu_name を column_new_nameに全てコピー
ALTER TABLE table_name DROP COLUMN column_name;
ALTER TABLE table_name RENAME column_new_name TO column_name;
として、型を変更しました。
ご参考までに。
#7.1もしくは7.2以前は、DROP COLUMNがサポートされていなかったと思うので、
#その場合は、TABLEをDROPするしかないと思います。
#マニュアルの sql-altertable.html を参照するとサポートされているかどうか分
かる
#はずです。
-----------------------------------------
鈴木 徹 (SUZUKI Toru)
KENWOOD ENGINEERING CORPORATION
E-mail:t_suzuki @ kenwood-eng.co.jp
-----------------------------------------
pgsql-jp メーリングリストの案内