2010年8月 2日

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

盛です。

> 尾藤と申します。
>
> 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@xxxxx>


投稿者 xml-rpc : 2010年8月 2日 15:00
役に立ちました?:
過去のフィードバック 平均:(0) 総合:(0) 投票回数:(0)
本記事へのTrackback: http://hoop.euqset.org/blog/mt-tb2006.cgi/97388
トラックバック
コメント
コメントする




画像の中に見える文字を入力してください。