mysql外部キーの作成方法


MySQLでは、InnoDBエンジンタイプのテーブルが外部キー制約をサポートし、MyISAMタイプは外部キーを一時的にサポートしません.
外部キー関係を確立する2つのテーブルの列は、intとtinyintなどのタイプの列を相互に変換できるデータ型が似ている必要がありますが、intとcharはできません.また、統合プライマリ・キーがMSSQLで外部キーを確立する場合は、使用を推奨しません.
外部キーの利点:2つのテーブルを関連付けて、データの一貫性を保証し、いくつかのカスケード操作を実現することができます.
外部キーの定義構文:
[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}]

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