STERFIELD

【MySQL】外部参照について

【MySQL】外部参照について

今日はMySQLの外部参照について話したいと思います。
慣れないキーワードがちょっと出てきますが、安心してください。
MySQLの外部参照はこれだけで覚えます。

キーワード

CONSTRAINT
REFERENCES
RESTRICT
NO ACTION
CASCADE
SET NULL

基本用法

reference_option

RESTRICT

ON DELETE句やON UPDATE句にRESTRICTを指定した場合は、親テーブルに対して更新や削除を行うとエラーが発生します。RESTRICTはON DELETE句やON UPDATE句を明示的に指定しなかった場合に設定される値です。

NO ACTION

ON DELETE句やON UPDATE句にNO ACTIONを指定した場合は、親テーブルに対して更新や削除を行うとエラーが発生します。MySQLにおいてはNO ACTIONとRESTRICTは同じ挙動となります。

CASCADE

ON DELETE句やON UPDATE句にCASCADEを指定した場合は、親テーブルに対して更新を行うと子テーブルで同じ値を持つカラムの値も合わせて更新されます。また親テーブルに対して削除を行うと子テーブルで同じ値を持つデータが削除されます。

SET NULL

ON DELETE句やON UPDATE句にSET NULLを指定した場合は、親テーブルに対して更新を行うと子テーブルで同じ値を持つカラムの値がNULLに更新されます。また親テーブルに対して削除を行うと子テーブルで同じ値を持つデータのカラムの値がNULLに更新されます。

参考リンク

http://dev.mysql.com/doc/refman/5.1/ja/innodb-foreign-key-constraints.html
http://www.dbonline.jp/mysql/table/index12.html

Author Profile

著者近影

スターフィールド編集部

SHARE

合わせて読みたい