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

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

下次还敢
リリース: 2024-04-22 19:51:38
オリジナル
1218 人が閲覧しました

MySQL でテーブル外部キー制約を作成すると、参照整合性が保証されます。手順は次のとおりです。 2 つのテーブルを作成し、主キーを指定します。親テーブルの主キーを参照する FOREIGN KEY 制約を子テーブルに追加します。必要に応じて、参照アクション (カスケード削除や制限付き更新など) を指定します。

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

#MySQL でテーブルの外部キー制約を作成する

外部キー制約が 2 つのテーブル間に確立されると、これにより、それらの間の参照整合性。次の手順では、MySQL でテーブルの外部キー制約を作成する方法を紹介します。

ステップ 1: 2 つのテーブルを作成する

外部キー制約を確立する 2 つのテーブルを作成します。 :

<code class="sql">CREATE TABLE parent_table (
    id INT NOT NULL,
    name VARCHAR(255) NOT NULL,
    PRIMARY KEY (id)
);

CREATE TABLE child_table (
    id INT NOT NULL,
    parent_id INT NOT NULL,
    value VARCHAR(255) NOT NULL,
    PRIMARY KEY (id),
    FOREIGN KEY (parent_id) REFERENCES parent_table(id)
);</code>
ログイン後にコピー

ステップ 2: 子テーブルに外部キー制約を追加します

child_table で、 FOREIGN KEY 制約を使用しますparent_id 列を parent_tableid 列に参照します:

<code class="sql">ALTER TABLE child_table
ADD FOREIGN KEY (parent_id) REFERENCES parent_table(id);</code>
ログイン後にコピー

ステップ 3: 参照操作を指定します (オプション)

ON DELETE 句と ON UPDATE 句を使用して、親テーブルが削除または更新されたときに子テーブルも削除または更新されるように指定できます。テーブル内の影響を受けるレコード:

<code class="sql">ALTER TABLE child_table
ADD FOREIGN KEY (parent_id) REFERENCES parent_table(id)
ON DELETE CASCADE
ON UPDATE RESTRICT;</code>
ログイン後にコピー
このコード内:

  • ON DELETE CASCADE: parent_table から削除するとき レコードが削除されたとき、関連レコードは child_table からカスケード的に自動的に削除されます。
  • ON UPDATE RESTRICT: parent_table 内のレコードが更新されると、child_table 内の影響を受けるレコードへの更新はブロックされます。

注:

    親テーブルの列のデータ型が子テーブルの外部キー列と同じであることを確認してください。
  • 親テーブルの列で NULL 値が許可される場合、子テーブルの外部キー列でも NULL 値が許可される必要があります。
  • 外部キー制約の作成後に親テーブルの列を変更した場合は、その変更に合わせて外部キー制約を変更する必要があります。
  • 外部キー制約は、データの整合性を確保し、矛盾したデータの挿入や削除を防ぐのに役立ちます。

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

関連ラベル:
ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
最新の問題
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート