Mysql外部キーの詳細

736 ワード

MySQLでは、InnoDBエンジンタイプのテーブルが外部キー制約をサポートしています. 
[CONSTRAINT symbol] FOREIGN KEY [id] (index_col_name, …)
REFERENCES tbl_name (index_col_name, …)
[ON DELETE {RESTRICT | CASCADE | SET NULL | NO ACTION | SET DEFAULT}]
[ON UPDATE {RESTRICT | CASCADE | SET NULL | NO ACTION | SET DEFAULT}]
ALTER TABLE serialcodes_for_customer add CONSTRAINT serialcodes_id FOREIGN KEY(serialcodes_id) REFERENCES serialcodes(`serialcodes_id`) ON DELETE CASCADE

この構文はCREATE TABLEとALTER TABLEで使用できます.CONTRAINT symbolを指定しないと、MYSQLは自動的に名前を生成します.
ON DELETE、ON UPDATEはイベントトリガ制限を表し、パラメータを設定することができる:
RESTRICT
CASCADE(外部キーの変更に従う)
SET NULL(NULL設定)
SET DEFAULT(デフォルト設定)
NO ACTION(動作なし、デフォルト)