ホームページ データベース mysql チュートリアル MySQL でテーブルを作成するときに外部キー制約を記述する方法

MySQL でテーブルを作成するときに外部キー制約を記述する方法

Apr 22, 2024 pm 07:52 PM
mysql

MySQL 外部キー制約の構文は次のとおりです: ALTER TABLE child_table ADD FOREIGN KEY (foreign_key_column) REFERENCESparent_table (primary_key_column)。これにより、2 つのテーブル間の関係の整合性が保証されます。外部キー制約の機能は次のとおりです。 1. データの整合性: 制約された子テーブル参照が親テーブルに存在する必要があります。 2. カスケード更新: 親テーブルの主キー値が変更されたときにすべての参照を自動的に更新します。 3. カスケード削除: 親。テーブルの主キー 値が削除されると、すべての参照が自動的に削除されます。

MySQL でテーブルを作成するときに外部キー制約を記述する方法

MySQL 外部キー制約の構文

MySQL では、外部キー制約を使用して、2 つのテーブル間で関係の誠実さ。構文は次のとおりです:

<code>ALTER TABLE child_table
ADD FOREIGN KEY (foreign_key_column)
REFERENCES parent_table (primary_key_column)</code>
ログイン後にコピー

その中に:

  • child_table: 外部キー制約を追加する必要があるテーブル。
  • foreign_key_column: parent_table の主キーを参照する child_table 内の列。
  • parent_table: 制約を定義するために主キーが使用される参照テーブル。
  • primary_key_column: parent_table で参照される主キー列。

外部キー制約の役割

外部キー制約は、次のことを保証するのに役立ちます:

  • データ整合性プロパティ: 親テーブルに存在しない参照が子テーブルに挿入されるのを防ぎます。
  • カスケード更新: 親テーブルの主キーの値が変更されると、参照されているすべての子テーブルの値が自動的に更新されます。
  • カスケード削除: 親テーブルの主キー値が削除されると、子テーブルで参照されているすべての値が自動的に削除されます。

2 つのテーブルがあるとします: ordersorder_items:

<code>CREATE TABLE orders (
  order_id INT NOT NULL AUTO_INCREMENT,
  customer_id INT NOT NULL,
  PRIMARY KEY (order_id)
);

CREATE TABLE order_items (
  item_id INT NOT NULL AUTO_INCREMENT,
  order_id INT NOT NULL,
  product_id INT NOT NULL,
  PRIMARY KEY (item_id),
  FOREIGN KEY (order_id) REFERENCES orders (order_id)
);</code>
ログイン後にコピー

この例では、order_items テーブルの外部キー制約により、各 order_id 値が orders テーブルに存在することが保証されます。これは、orders テーブルに存在しない order_id 値を order_items テーブルに挿入できないことを意味します。

以上がMySQL でテーブルを作成するときに外部キー制約を記述する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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

ホットAIツール

Undresser.AI Undress

Undresser.AI Undress

リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover

AI Clothes Remover

写真から衣服を削除するオンライン AI ツール。

Undress AI Tool

Undress AI Tool

脱衣画像を無料で

Clothoff.io

Clothoff.io

AI衣類リムーバー

AI Hentai Generator

AI Hentai Generator

AIヘンタイを無料で生成します。

ホットツール

メモ帳++7.3.1

メモ帳++7.3.1

使いやすく無料のコードエディター

SublimeText3 中国語版

SublimeText3 中国語版

中国語版、とても使いやすい

ゼンドスタジオ 13.0.1

ゼンドスタジオ 13.0.1

強力な PHP 統合開発環境

ドリームウィーバー CS6

ドリームウィーバー CS6

ビジュアル Web 開発ツール

SublimeText3 Mac版

SublimeText3 Mac版

神レベルのコード編集ソフト(SublimeText3)

PHPがMySQLに接続された後、ページは空白です。無効なDIE()関数の理由は何ですか? PHPがMySQLに接続された後、ページは空白です。無効なDIE()関数の理由は何ですか? Apr 01, 2025 pm 03:03 PM

PHPがMySQLに接続した後、ページは空白になり、DIE()関数が失敗する理由。 PHPとMySQLデータベースの間の接続を学習するとき、あなたはしばしばいくつかの混乱することに遭遇します...

ランプアーキテクチャの下でnode.jsまたはPythonサービスを効率的に統合する方法は? ランプアーキテクチャの下でnode.jsまたはPythonサービスを効率的に統合する方法は? Apr 01, 2025 pm 02:48 PM

多くのウェブサイト開発者は、ランプアーキテクチャの下でnode.jsまたはPythonサービスを統合する問題に直面しています:既存のランプ(Linux Apache MySQL PHP)アーキテクチャWebサイトのニーズ...

PCとモバイル側で同じページを共有し、キャッシュの問題を処理する方法は? PCとモバイル側で同じページを共有し、キャッシュの問題を処理する方法は? Apr 01, 2025 pm 01:57 PM

PCとモバイル側で同じページを共有し、キャッシュの問題を処理する方法は? Nginxでは、Baotaの背景を使用して構築されたPHP MySQL環境、PCサイドの作成方法と...

Debian文字列は、複数のブラウザと互換性があります Debian文字列は、複数のブラウザと互換性があります Apr 02, 2025 am 08:30 AM

「DebianStrings」は標準的な用語ではなく、その特定の意味はまだ不明です。この記事は、ブラウザの互換性について直接コメントすることはできません。ただし、「DebianStrings」がDebianシステムで実行されているWebアプリケーションを指す場合、そのブラウザの互換性はアプリケーション自体の技術アーキテクチャに依存します。ほとんどの最新のWebアプリケーションは、クロスブラウザーの互換性に取り組んでいます。これは、次のWeb標準と、適切に互換性のあるフロントエンドテクノロジー(HTML、CSS、JavaScriptなど)およびバックエンドテクノロジー(PHP、Python、Node.jsなど)を使用することに依存しています。アプリケーションが複数のブラウザと互換性があることを確認するには、開発者がクロスブラウザーテストを実施し、応答性を使用する必要があることがよくあります

DockerはLNMP環境を構築します:単一のDockerFileまたはDockerの構成はより良いですか? DockerはLNMP環境を構築します:単一のDockerFileまたはDockerの構成はより良いですか? Apr 01, 2025 pm 02:09 PM

dockerfileのベストプラクティスLNMP環境学習のためのベストプラクティスDocker中に、多くの開発者は独自のLNMP(Linux、Nginx、MySQL、PHP)を構築しようとします...

RedisキューとMySQLの安定性の比較:なぜRedisはデータ損失になりやすいのですか? RedisキューとMySQLの安定性の比較:なぜRedisはデータ損失になりやすいのですか? Apr 01, 2025 pm 02:24 PM

RedisキューとMySQLの安定性の比較:なぜRedisはデータ損失になりやすいのですか?開発環境では、php7.2とthinkphpフレームワークを使用して、私たちはしばしば協力の選択に直面しています...

DjangoとMySQLを使用して、数十万から100万個のデータを処理する場合、4コア8Gメモリサーバーはどのようなキャッシュソリューションを選択する必要がありますか? DjangoとMySQLを使用して、数十万から100万個のデータを処理する場合、4コア8Gメモリサーバーはどのようなキャッシュソリューションを選択する必要がありますか? Apr 01, 2025 pm 11:36 PM

DjangoとMySQLを使用して、DjangoおよびMySQLデータベースを使用するときに大量のデータボリュームを処理します。データボリュームが数十万から100万または200万に達すると...

See all articles