2016-06-29 10 views

答えて

2

、制約構文のCONSTRAINT symbol_name一部はオプションです:

[CONSTRAINT [symbol]] FOREIGN KEY 
[index_name] (index_col_name, ...) 
REFERENCES tbl_name (index_col_name,...) 
[ON DELETE reference_option] 
[ON UPDATE reference_option] 

reference_option: 
    RESTRICT | CASCADE | SET NULL | NO ACTION 

差は、外部キーの命名です。上記リンク先のドキュメントで説明したよう:定義されている場合、CONSTRAINTシンボル値が使用されます

をそれ以外の場合は、MySQLは暗黙のうちに次の規則に従って命名された外部キーのインデックスを作成します。それ以外の場合は、 FOREIGN KEYのindex_nameの値が使用されます。

•CONSTRAINTシンボルまたはFOREIGN KEY index_nameのいずれも定義されていない場合、 外部キーインデックス名は、外部キー列を参照する の名前を使用して生成されます。

1

CONSTRAINT句を使用すると、外部キー制約の制約名を定義できます。 MySQLが見つからない場合、自動的に名前が生成されます。

関連する問題