[pgsql-jp: 34082] カラムの変更方法

kagasawa kagasawa @ elf.coara.or.jp
2004年 10月 8日 (金) 09:40:45 JST


はじめましてカガサワと申します。

本日、貴MLに参加した都合上、過去ログの検索方法が分からず、
もしかしたら既出の質問かもしれませんが、
非常に困っておりまして対策をご教授頂きたく願っております。


PostgreSQLのバージョンは7.2.3です。

あるテーブルのあるカラムが varchar(50) で指定されていたのですが、
50ではどうしても足りなくなり値を増やしたいだけなのですが、
どうも簡単には出来ないようで困っております。

カラム定義を変更できないのであれば、ダミー項目を作り、
データをコピーして削除・リネームしたら良いと思いついたのですが、
肝心のカラム削除が出来ず困り果ててしまいました。

このバージョンのドキュメントを調べたところ
(http://www.postgresql.jp/document/pg721doc/reference/sql-altertable.html)

> テーブルから列を削除します。現在では、既存の列を削除するためには以下のように、
> テーブルを再作成してから再ロードしなくてはなりません。 

とあったように、再構築しか手段は無いのでしょうか?
(つまりカラムの削除は出来ないのでしょうか?)

しかしこの場合困ったことがひとつ生じました。
このテーブルのキーは構造上 serial not null の指定で自動的に付番しており、
結果的に再構築したところでシリアルの last_value が初期化されてしまい、
このことによって堂々巡りにハマり込んでしまいました。
(既にシステムが稼動している都合上、多数のデータが格納されております)

もっと簡単な方法があるのかもしれませんが、
自分なりに調べてもどうしても解決できず途方にくれておりますので、
どうかご教授頂ければ幸いです。





pgsql-jp メーリングリストの案内