ホームページ >データベース >mysql チュートリアル >mysql で外部キーを空にすることはできますか?

mysql で外部キーを空にすることはできますか?

下次还敢
下次还敢オリジナル
2024-05-01 20:27:36791ブラウズ

MySQL の外部キーは空にすることができ、オプションの関係、カスケード削除、データの整合性などの特定のビジネス シナリオをサポートします。 NULL に設定すると、子テーブルの行は親テーブルと一致する関連付けを持たなくなります。

mysql で外部キーを空にすることはできますか?

#MySQL の外部キーを空にすることはできますか?

答え: はい。

MySQL では、外部キーを空にすることができ、親テーブルのレコードに関連付けられていない行を子テーブルに含めることができます。

詳細な説明:

外部キーは、子テーブルの各行を親テーブルの行に強制的に関連付けるデータベース制約です。ただし、特定のビジネス シナリオをサポートするために、MySQL では外部キーを null にすることができます。

外部キーが空の場合は、子テーブルの行が親テーブルのどの行とも一致しないことを意味します。これは、次の状況で役立ちます。

  • オプションのリレーションシップ: 子テーブルの一部の行は親テーブルの行に関連している可能性がありますが、他の行は関連していない可能性があります。
  • カスケード削除: 外部キーが空の場合、親テーブルのレコードが削除されても、子テーブルの関連レコードはカスケード削除されません。
  • データの整合性: 場合によっては、外部キーを空にすることを許可すると、データの整合性を維持し、データの不整合を防ぐことができます。

注:

外部キーは null にすることもできますが、この機能は注意して使用する必要があります。空の外部キーはデータの不整合を引き起こし、クエリのパフォーマンスを低下させる可能性があります。通常、データの整合性を強制する場合は、NULL 以外の外部キーを使用することをお勧めします。

null に設定する方法:

MySQL では、外部キーの作成時に

NULL を指定することで、外部キーを null に設定できます。制約。例:

<code class="sql">CREATE TABLE child_table (
  child_id INT PRIMARY KEY,
  parent_id INT,
  FOREIGN KEY (parent_id) REFERENCES parent_table(parent_id) ON DELETE SET NULL
);</code>

以上がmysql で外部キーを空にすることはできますか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。