mysql外部キーと削除

WBOY
リリース: 2023-05-18 12:25:08
オリジナル
792 人が閲覧しました

MySQL 外部キーと削除

MySQL は、広く使用されており非常に強力なリレーショナル データベース管理システムです。 MySQL では、外部キーは非常に重要な概念であり、データベース設計とデータ保守において重要な役割を果たします。この記事では、MySQL の外部キーと、外部キーを使用してデータベース内のデータを削除する方法を紹介します。

MySQL 外部キー

外部キー (外部キー) とは、あるデータベース テーブルに、別のテーブルの主キーを指すキーを設定することを指します。テーブルに外部キーがある場合、このテーブル内の修飾された各レコードに対応するメイン テーブル レコードが存在する必要があります。存在しない場合は、関連する操作を実行できません。この操作により、テーブル間のデータの整合性と一貫性が保証されます。

次の例で外部キーの概念を説明します。

テーブル person の作成:

CREATE TABLE person (
    id INT PRIMARY KEY,
    name VARCHAR(20)
);
ログイン後にコピー

テーブル カードの作成:

CREATE TABLE card (
    id INT PRIMARY KEY,
    person_id INT,
    card_no VARCHAR(20),
    FOREIGN KEY(person_id) REFERENCES person(id)
);
ログイン後にコピー

テーブル カード では、 person_id は外部キーで、テーブル person の id フィールドを指します。この外部キーの目的は、各カード レコードの person_id が person テーブルに存在することを確認し、一貫性と整合性を確保することです。

外部キーを使用して削除する

データベース内で削除するとき、テーブル間に関係がある場合は、削除操作によってテーブルの整合性と完全性が破壊されないことを確認する必要があります。データベースの一貫性。 MySQL では、外部キーを使用してこれを実現できます。

削除操作を実行する場合、削除するレコードが外部キーに関連付けられているテーブルに存在する場合は、まず関連付けられているテーブルのレコードを削除してから、このテーブルのレコードを削除する必要があります。このプロセスは、ON DELETE CASCADE および ON DELETE SET NULL を使用して実現できます。

ON DELETE CASCADE は、関連付けられたテーブル内のレコードが削除されると、このテーブル内の関連レコードを自動的に分類して削除することによって動作します。例:

CREATE TABLE person (
    id INT PRIMARY KEY,
    name VARCHAR(20)
);

CREATE TABLE card (
    id INT PRIMARY KEY,
    person_id INT,
    card_no VARCHAR(20),
    FOREIGN KEY(person_id) REFERENCES person(id) ON DELETE CASCADE
);

INSERT INTO person(id, name) VALUES(1, 'Tom');

INSERT INTO card(id, person_id, card_no) VALUES(1, 1, '123456');

DELETE FROM person WHERE id = 1;
ログイン後にコピー

上の例では、まず person テーブルにレコードを挿入し、次にカード テーブルにレコードを挿入しました。このレコードは、person テーブルの ID 1 のレコードを指します。最後に、DELETE ステートメントを使用して、person テーブル内の ID 1 のレコードを削除しました。この削除操作により、card テーブル内の関連レコードも自動的に削除されます。

ON DELETE SET NULL 操作は、関連テーブル内のレコードが削除されるときに、このテーブル内の関連レコードが NULL に設定されます。例:

CREATE TABLE person (
    id INT PRIMARY KEY,
    name VARCHAR(20)
);

CREATE TABLE card (
    id INT PRIMARY KEY,
    person_id INT,
    card_no VARCHAR(20),
    FOREIGN KEY(person_id) REFERENCES person(id) ON DELETE SET NULL
);

INSERT INTO person(id, name) VALUES(1, 'Tom');

INSERT INTO card(id, person_id, card_no) VALUES(1, 1, '123456');

DELETE FROM person WHERE id = 1;
ログイン後にコピー

上の例では、まず person テーブルにレコードを挿入し、次にカード テーブルにレコードを挿入しました。このレコードは、person テーブルの ID 1 のレコードを指します。最後に、DELETE ステートメントを使用して、person テーブルの id 1 のレコードを削除しました。この削除操作により、card テーブルの関連レコードの person_id が自動的に NULL に設定されます。

概要

MySQL 外部キーは非常に重要な概念であり、データベース設計とデータ保守において重要な役割を果たします。外部キーを使用すると、テーブル間のデータの整合性と一貫性を確保できます。削除操作を実行するときは、ON DELETE CASCADE および ON DELETE SET NULL を使用してテーブル間の関連付けを処理し、データベースの一貫性を確保できます。

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

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