はい、外部キーは一種の制約です。 MySQLは制約を不均一にサポートしています:
PRIMARY KEY
:テーブル制約および列制約としてはい。FOREIGN KEY
:テーブル制約としてはい。ただし、InnoDBおよびBDBストレージエンジンでのみ。それ以外の場合は解析されますが無視されます。CHECK
:解析されましたが、すべてのストレージエンジンで無視されました。-
UNIQUE
:テーブル制約および列制約としてはい。 -
NOT NULL
:列の制約としてはい。 -
DEFERRABLE
およびその他の制約属性:サポートなし。
CONSTRAINT
句を使用すると、メタデータを読みやすくするため、または制約を削除するときに名前を使用するために、制約に明示的に名前を付けることができます。 SQL標準では、CONSTRAINT
句はオプションです。省略した場合、RDBMSは自動的に名前を作成し、名前は実装次第です。