mysql外部キーの紹介と外部キーの作成方法

969 ワード

MySQLでは、InnoDBエンジンタイプのテーブルが外部キー制約をサポートしています.外部キーの使用条件:1.2つのテーブルはInnoDBテーブルでなければならず、MyISAMテーブルは一時的に外部キーをサポートしない(今後のバージョンではサポートされる可能性があると言われているが、少なくとも現在はサポートされていない).2.外部キー列にインデックスを作成する必要があります.MySQL 4.1.2以降のバージョンでは、外部キーの作成時にインデックスが自動的に作成されますが、以前のバージョンでは作成を表示する必要があります.3.外部キー関係の2つのテーブルの列は、データ型が似ている必要があります.つまり、intとtinyintなどのタイプの列を相互に変換することができますが、intとcharはできません.
外部キーの利点: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は自動的に名前を生成します.ON DELETE、ON UPDATEはイベントトリガ制限を表し、パラメータを設定可能:RESTRICT(外部キーの変更を制限)CASCADE(外部キーの変更に追従)SET NULL(空の値を設定)SET DEFAULT(デフォルト値を設定)NO ACTION(動作なし、デフォルト)