[pgsql-jp: 40349] Re: ON DELETE CASCADE をつけた時のdelete動作について

Yoshiharu Mori y-mori @ sra.co.jp
2010年 8月 2日 (月) 15:00:36 JST


盛です。

> 尾藤と申します。
> 
> PostgreSQL 8.2.4 を Cent OS 4.4上で使っています。
> 
> タイトルの動作について質問させて頂きます。
> 
> テーブルA,テーブルBがあり、テーブルBの主キーをAテーブルの外部キーに
> しているケース(下の様な制約をつけているケース)で、
> 
> ADD TABLE ONLY テーブルA
>   ADD CONSTRAINT fk_テーブルA FOREIGN KEY (テーブルBID) 
>   REFERENCES テーブルB(テーブルBID)
>   ON DELETE CASCADE;
> 
> 「テーブルAのレコードを削除すると、テーブルAの外部キーに関連する
>   テーブルBのレコードも削除される」

これは逆ですよね?
「テーブルBのレコードを削除すると、テーブルBの外部キーに関連する
  テーブルAのレコードも削除される」

> 
> はずですが、もしテーブルBのレコードの削除中になんらかの異常が発生
> した場合、テーブルAのレコードだけが削除された状態になることはある
> のでしょうか?
> 
> 制約とトランザクション管理でそのようなことはないと思っているので
> すが。

おっしゃるとおり、トランザクション管理をしているので無いですね。

> 
> よろしくお願いします。
> 
> --------------------------------------
> Get the new Internet Explorer 8 optimized for Yahoo! JAPAN
> http://pr.mail.yahoo.co.jp/ie8/


-- 
Yoshiharu Mori <y-mori @ sra.co.jp>


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