MySQLで外部キー制約の仕組みを深く理解しよう

外部キーは、リレーショナルデータベースにおける重要なデータ整合性制約であり、テーブル間の関連付けを構築するために使用されます。外部キー制約は、テーブルの列または列のグループが、別のテーブルのプライマリキーまたはユニークキーに存在しなければならないことを指定します。MySQLでは、外部キー制約はFOREIGN KEYキーワードを使用して定義されます。以下に、外部キー制約の詳細な説明を示します。

1. **外部キーの定義:** 外部キーとは、別のテーブルのプライマリキーまたはユニークキーを参照する、テーブル内の列または列のグループのことです。外部キー列の値は、参照されるテーブル内の列に存在する必要があります。

2. **外部キーの構文:**

“`
CREATE TABLE テーブル名 (
列名 データ型,

FOREIGN KEY (外部キー列名) REFERENCES 参照されるテーブル名(参照される列名),

);
“`

3. **外部キーの役割:**

* **データ整合性の制約:** 外部キー制約はデータ整合性を保証し、データ挿入または更新時に不整合が発生するのを防ぎます。
* **テーブル間の関連付けの構築:** 外部キー制約はテーブル間の関連付けを構築し、クエリや操作を容易にします。

4. **外部キーの種類:**

* **プライマリキー外部キー:** 外部キーが別のテーブルのプライマリキーを参照し、1対1の関係を構築します。
* **ユニークキー外部キー:** 外部キーが別のテーブルのユニークキーを参照し、1対多の関係を構築します。

5. **外部キーの操作:**

* **RESTRICT:** デフォルトの動作で、参照されるテーブル内の行を削除または更新することを禁止し、参照整合性を保ちます。
* **CASCADE:** カスケード操作であり、参照されるテーブル内の行を削除または更新すると、関連する外部キーテーブル内の行も同時に削除または更新されます。
* **SET NULL:** NULLの設定であり、参照されるテーブル内の行を削除または更新すると、外部キーテーブル内の外部キー列をNULLに設定します。
* **NO ACTION:** RESTRICTと同等であり、参照されるテーブル内の行を削除または更新することを禁止します。

6. **外部キーの制約:**

* 外部キー制約では、参照されるテーブル内の列にプライマリキーまたはユニークキー制約が必要です。
* 外部キー制約は、InnoDBストレージエンジンでのみ使用できます。
* 外部キー制約の列のデータ型と長さは、参照されるテーブル内の列のデータ型と長さと完全に一致する必要があります。

**まとめ:** 外部キー制約は、MySQLデータベースにおける重要なデータ整合性制約であり、テーブル間の関連付けを構築し、データの整合性を保証するために使用されます。外部キー制約の定義にはFOREIGN KEYキーワードを使用し、参照されるテーブル内の行の削除または更新操作を処理するさまざまな操作ルールを設定できます。また、外部キー制約には、参照されるテーブル内の列にプライマリキーまたはユニークキー制約が必要である、InnoDBストレージエンジンでのみ使用できるなど、いくつかの制約があります。

コメントを残す 0

Your email address will not be published. Required fields are marked *


广告
広告は10秒後に閉じます。
bannerAds