[pgsql-jp: 26970] Re: Need info about 7.3( inherit cascade & array search)
Tatsuo Ishii
t-ishii @ sra.co.jp
2002年 8月 10日 (土) 12:40:35 JST
石井です.
> で、だいぶ前に、cascadeしたテーブル(子)をinheritしたテーブル(孫)で
> たとえばdelete on cascadeで親のあるタプルを削っても孫の該当部分が
> 消えてくれないと言う話題を投稿した際、まだ未実装なので7.3くらいまで
> 待たないとダメという回答を頂いた記憶があります。
現時点では制約の継承は実装されていません.とりあえず,手動で外部キーを
孫に追加するしかなさそうです.
このあたりの議論はcurrentのdoc/TODO.detail/inheritanceを見てください.
あまり関係ないですが,7.3では外部キーをALTER TABLEでDROPできるのが嬉し
いです.また,依存されているオブジェクトがなんの警告もなしにDROPされる
ことがなくなったのも嬉しいです.このあたり,ほとんどのDROP系のコマンド
にCASCADE,RESTRICTオプションが追加されています.たとえば,
CREATE TABLE t1(i INTEGER PRIMARY KEY);
CREATE TABLE t2(j INTEGER REFERENCES t1 ON DELETE CASCADE);
っていうのがあって,ここでt1をDROPしようとすると,
NOTICE: constraint $1 on table t2 depends on table t1
ERROR: Cannot drop table t1 because other objects depend on it
Use DROP ... CASCADE to drop the dependent objects too
と怒られます.あえてt1をDROPしたければ,DROP TABLE t1 CASCADE としない
といけません.
逆に,SERIAL型を使っているテーブルで,テーブルを消したのにシーケンスだ
け残っている,なんて間抜けなことは起きなくなりました.
--
Tatsuo Ishii
pgsql-jp メーリングリストの案内