[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 メーリングリストの案内