私はこれらの2つの違いは何か分かりません。外部キーを追加するときにCONSTRAINTキーワードを使用するとは何ですか?
CONSTRAINT fk_PerOrders FOREIGN KEY (P_Id) REFERENCES ..
と
FOREIGN KEY (P_Id) REFERENCES ..
はそれだけで命名、または何か他のものはありますか? foreign keys indicates上のMySQLのマニュアルとして
私はこれらの2つの違いは何か分かりません。外部キーを追加するときにCONSTRAINTキーワードを使用するとは何ですか?
CONSTRAINT fk_PerOrders FOREIGN KEY (P_Id) REFERENCES ..
と
FOREIGN KEY (P_Id) REFERENCES ..
はそれだけで命名、または何か他のものはありますか? foreign keys indicates上のMySQLのマニュアルとして
、制約構文の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のいずれも定義されていない場合、 外部キーインデックス名は、外部キー列を参照する の名前を使用して生成されます。
CONSTRAINT
句を使用すると、外部キー制約の制約名を定義できます。 MySQLが見つからない場合、自動的に名前が生成されます。