[pgsql-jp: 39199] 主キーのINDEXの削除の仕方
YAMANEKO/Mao
yneko2 @ yamamaya.com
2008年 2月 14日 (木) 11:26:40 JST
度々お世話になります、もりもとです
もしかするとものすごく初歩的なこととか、
FAQかもと、思うのですが・・・
PostgreSQL 8.2.4を使っていまして、
元々、このようなテーブル(T_EXAMPLE)があって、
key1がPRIMARY KEYとなっていました。
Column | Type | Modifiers
--------+-----------------------------+---------------
key1 | character varying(15) | not null
data | character varying(50) |
しばらく運用してデータが溜まった後、仕様変更でフィールドを追加し、
運用しながら、主キーをKEY1とKEY2の複合キーとすることにしました。
Column | Type | Modifiers
--------+-----------------------------+---------------
key1 | character varying(15) | not null
key2 | character varying(4) | not null
data | character varying(50) |
ここで、元々のCREATE TABLEで自動的に作られたKEY1のためのインデックス、
T_EXAMPLE_PKEYを削除して、
新しくKEY1とKEY2の複合キーのインデックスを設定したいのですが・・・
T_EXAMPLE_PKEYの削除の仕方がわかりません。。
単純に
DROP INDEX T_EXAMPLE_PKEY;
では、T_EXAMPLEの制約で使われているからドロップできない、
とエラーになってしまいますし・・・
では、T_EXAMPLEの制約を外そうと思っても
ALTER TABLE T_EXAMPLE ALTER COLUMN KEY1 DROP NOT NULL;
KEY1は主キーですよ、とエラーになってしまいます。。
運用しながらの改造のため、
テーブルの作り直し、データの入れ直しは避けたいのですが・・・
どうやるのが正しいのでしょうか?
- YAMANEKO / Mao
http://yamamaya.com/
pgsql-jp メーリングリストの案内