GANCHIKU.com

REFERENCES table名 ON DELETE CASCADE ON UPDATE CASCADE

2005年12月8日

SQLに関して少し詳しくなった。
タイトルにあるように。

外部キーとして参照されているときのカラムの削除や更新の際に、参照先のテーブルのカラム定義にON UPDADE とか ON DELETEとかカラムに定義しておくと、一緒に、参照先のテーブルのキーとかも変更とか削除とかしてくれるのね。
これ便利。
いままで、参照されているものを消さなきゃいけないじゃん。とずっと思っていたけど、そんなことは全くもってないんだね。

CREATE TABLE
つーわけで、以下抜粋。ON DELETEやON UPDATEで次のものを指定できる。

NO ACTION

削除もしくは更新が外部キー制約違反となることを示すエラーを発生します。制約が遅延可能な場合、何らかの参照行が存在する限り、このエラーは制約の検査時点で発生します。これはデフォルトの動作です。
RESTRICT

削除もしくは更新が外部キー制約違反となることを示すエラーを発生します。検査が遅延できない点を除き、NO ACTIONと同じです。
CASCADE

削除された行を参照している行は全て削除します。また、参照している列の値を、被参照列の新しい値にします。
SET NULL

参照する列(複数可)をNULLに設定します。
SET DEFAULT

参照する列(複数可)をそのデフォルト値に設定します。

つか、本当は、もっともっとたくさんオプションがあるんだ。ぜんぜん使ってない。。。。ことはないか。

CACADEって書いていた。CASCADEね。情けない。。。で、修正した。

コメントをどうぞ

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

*

次のHTML タグと属性が使えます: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>

Shin Ohno 2003-2012