目次
はじめに
ホームページ データベース mysql チュートリアル MySQL 外部キー カスケードを実装する方法

MySQL 外部キー カスケードを実装する方法

May 29, 2023 pm 09:49 PM
mysql

はじめに

MySQL 外部キーは制約の役割を果たし、データベース レベルでのデータの整合性を保証します。
たとえば、CASCADE (カスケード連結) タイプの外部キーを使用すると、子テーブル (user_info など) が親テーブル (user など) に関連付けられている場合、親テーブルが更新または削除されると、子テーブルがテーブルはレコードを更新または削除します。このプロセスはデータベース レベルで完了します。
初期のエンタープライズ システムには多くのデータベース設計があり、プログラマーが削除および更新操作を節約するのには役立ちますが、実際には隠れたルールが増加し、ソフトウェアが複雑になり、パフォーマンスが低下します。

したがって、アプリケーション設計では、データベース レベルではなく、アプリケーション層 (トランザクション処理メカニズムの使用など) でデータの整合性を確保するように最善を尽くす必要があります。

以下は、MySQL の外部キーの概要です。

MySQL で外部キーをサポートする唯一のストレージ エンジンは InnoDB です。外部キーを作成するときは、親テーブルに対応する ## が必要です。 #index. サブテーブル外部キーの作成時に、対応するインデックスも自動的に作成されます。

インデックスを作成するとき、親テーブルを削除または更新するときに、子テーブルで対応する操作 (

  • RESTRICT (制限制限)

    を含む) を指定できます。

  • #アクションなし
  • SET NULL
  • CASCADE (連結)
  • #RESTRICT は NO ACTION と同じです。つまり、
  • 子テーブルに関連レコード
がある場合、

親テーブルは更新できません; CASCADE は parent を意味しますtable
を更新または削除すると、 は子テーブル の対応するレコードを更新または削除します; SET NULL は、親テーブルが更新または削除されると、対応するフィールドが更新または削除されることを意味します子テーブルの は SET NULL です。

外部キーの使用が許可されるのは InnoDB エンジンだけであるため、データ テーブルでは InnoDB エンジンを使用する必要があります。

データベースの作成:

Create database test;
ログイン後にコピー

1。最初に 2 つのテーブル stu,sc

create table stu(
sid int UNSIGNED primary key auto_increment,
name varchar(20) not null)
TYPE=InnoDB charset=utf8;

create table sc(
scid int UNSIGNED primary key auto_increment,
sid int UNSIGNED not null,
score varchar(20) default '0',
index (sid),   --外键必须加索引
FOREIGN KEY (sid) REFERENCES stu(sid) ON DELETE CASCADE ON UPDATE CASCADE)
TYPE=InnoDB charset=utf8;
ログイン後にコピー

–注: 外部キーにはインデックスを付ける必要があります。

FOREIGN キー(sid) は外部キーを設定し、sid を外部キーとして設定します

REFERENCES stu(sid) 参照関数。 stu テーブルの sid を参照します

ON DELETE CASCADE cascade delete

ON UPDATE CASCADE cascade update

2. 2 つのテーブルにデータを挿入します

insert into stu (name) value ('zxf');
insert into stu (name) value ('ls');
insert into stu (name) value ('zs');
insert into stu (name) value ('ww');

insert into sc(sid,score) values ('1','98');
insert into sc(sid,score) values ('1','98');
insert into sc(sid,score) values ('2','34');
insert into sc(sid,score) values ('2','98');
insert into sc(sid,score) values ('2','98');
insert into sc(sid,score) values ('3','56');
insert into sc(sid,score) values ('4','78');
insert into sc(sid,score) values ('4','98');
ログイン後にコピー

注: sc テーブルにデータを挿入する場合、挿入された sid が 22 の場合、外部キー制約に違反して挿入は失敗します。これは、外部キー sidMySQL 外部キー カスケードを実装する方法 が、 stu テーブル。つまり、stu の ID には 22 に等しいデータがありません。

カスケード削除: stu テーブル内の ID 2 の学生を削除すると、sc テーブル内の学生の成績もカスケード削除されます

delete from stu where sid = '2';
ログイン後にコピー

カスケード更新: stu テーブル内の ID 3 の学生は ID 6 に変更され、sc テーブル内の学生の対応する ID もカスケードMySQL 外部キー カスケードを実装する方法

update stu set sid=6 where sid='3';
ログイン後にコピー

で更新されます。注MySQL 外部キー カスケードを実装する方法

テーブルを削除する場合は、まず外部キー テーブル (sc) を削除し、次に主キー テーブル (stu) を削除する必要があります。上の図は外部キー制約に違反しているため、削除できません

#上の図は通常の削除を示しています。最初に sc テーブルを削除してから、stu テーブルを削除してください。 MySQL 外部キー カスケードを実装する方法

以上が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)

MySQL:簡単な学習のためのシンプルな概念 MySQL:簡単な学習のためのシンプルな概念 Apr 10, 2025 am 09:29 AM

MySQLは、オープンソースのリレーショナルデータベース管理システムです。 1)データベースとテーブルの作成:createdatabaseおよびcreateTableコマンドを使用します。 2)基本操作:挿入、更新、削除、選択。 3)高度な操作:参加、サブクエリ、トランザクション処理。 4)デバッグスキル:構文、データ型、およびアクセス許可を確認します。 5)最適化の提案:インデックスを使用し、選択*を避け、トランザクションを使用します。

phpmyadminを開く方法 phpmyadminを開く方法 Apr 10, 2025 pm 10:51 PM

次の手順でphpmyadminを開くことができます。1。ウェブサイトコントロールパネルにログインします。 2。phpmyadminアイコンを見つけてクリックします。 3。MySQL資格情報を入力します。 4.「ログイン」をクリックします。

MySQL:世界で最も人気のあるデータベースの紹介 MySQL:世界で最も人気のあるデータベースの紹介 Apr 12, 2025 am 12:18 AM

MySQLはオープンソースのリレーショナルデータベース管理システムであり、主にデータを迅速かつ確実に保存および取得するために使用されます。その実用的な原則には、クライアントリクエスト、クエリ解像度、クエリの実行、返品結果が含まれます。使用法の例には、テーブルの作成、データの挿入とクエリ、および参加操作などの高度な機能が含まれます。一般的なエラーには、SQL構文、データ型、およびアクセス許可、および最適化の提案には、インデックスの使用、最適化されたクエリ、およびテーブルの分割が含まれます。

なぜMySQLを使用するのですか?利点と利点 なぜMySQLを使用するのですか?利点と利点 Apr 12, 2025 am 12:17 AM

MySQLは、そのパフォーマンス、信頼性、使いやすさ、コミュニティサポートに選択されています。 1.MYSQLは、複数のデータ型と高度なクエリ操作をサポートし、効率的なデータストレージおよび検索機能を提供します。 2.クライアントサーバーアーキテクチャと複数のストレージエンジンを採用して、トランザクションとクエリの最適化をサポートします。 3.使いやすく、さまざまなオペレーティングシステムとプログラミング言語をサポートしています。 4.強力なコミュニティサポートを提供し、豊富なリソースとソリューションを提供します。

単一のスレッドレディスの使用方法 単一のスレッドレディスの使用方法 Apr 10, 2025 pm 07:12 PM

Redisは、単一のスレッドアーキテクチャを使用して、高性能、シンプルさ、一貫性を提供します。 I/Oマルチプレックス、イベントループ、ノンブロッキングI/O、共有メモリを使用して同時性を向上させますが、並行性の制限、単一の障害、および書き込み集約型のワークロードには適していません。

MySQLの場所:データベースとプログラミング MySQLの場所:データベースとプログラミング Apr 13, 2025 am 12:18 AM

データベースとプログラミングにおけるMySQLの位置は非常に重要です。これは、さまざまなアプリケーションシナリオで広く使用されているオープンソースのリレーショナルデータベース管理システムです。 1)MySQLは、効率的なデータストレージ、組織、および検索機能を提供し、Web、モバイル、およびエンタープライズレベルのシステムをサポートします。 2)クライアントサーバーアーキテクチャを使用し、複数のストレージエンジンとインデックスの最適化をサポートします。 3)基本的な使用には、テーブルの作成とデータの挿入が含まれ、高度な使用法にはマルチテーブル結合と複雑なクエリが含まれます。 4)SQL構文エラーやパフォーマンスの問題などのよくある質問は、説明コマンドとスロークエリログを介してデバッグできます。 5)パフォーマンス最適化方法には、インデックスの合理的な使用、最適化されたクエリ、およびキャッシュの使用が含まれます。ベストプラクティスには、トランザクションと準備された星の使用が含まれます

MySQLおよびSQL:開発者にとって不可欠なスキル MySQLおよびSQL:開発者にとって不可欠なスキル Apr 10, 2025 am 09:30 AM

MySQLとSQLは、開発者にとって不可欠なスキルです。 1.MYSQLはオープンソースのリレーショナルデータベース管理システムであり、SQLはデータベースの管理と操作に使用される標準言語です。 2.MYSQLは、効率的なデータストレージと検索機能を介して複数のストレージエンジンをサポートし、SQLは簡単なステートメントを通じて複雑なデータ操作を完了します。 3.使用の例には、条件によるフィルタリングやソートなどの基本的なクエリと高度なクエリが含まれます。 4.一般的なエラーには、SQLステートメントをチェックして説明コマンドを使用することで最適化できる構文エラーとパフォーマンスの問題が含まれます。 5.パフォーマンス最適化手法には、インデックスの使用、フルテーブルスキャンの回避、参加操作の最適化、コードの読み取り可能性の向上が含まれます。

SQLデータベースの構築方法 SQLデータベースの構築方法 Apr 09, 2025 pm 04:24 PM

SQLデータベースの構築には、DBMSの選択が必要です。 DBMSのインストール。データベースの作成。テーブルの作成;データの挿入;データの取得。データの更新。データの削除。ユーザーの管理。データベースのバックアップ。

See all articles