MySQL 外部キー カスケードを実装する方法
はじめに
MySQL 外部キーは制約の役割を果たし、データベース レベルでのデータの整合性を保証します。
たとえば、CASCADE (カスケード連結) タイプの外部キーを使用すると、子テーブル (user_info など) が親テーブル (user など) に関連付けられている場合、親テーブルが更新または削除されると、子テーブルがテーブルはレコードを更新または削除します。このプロセスはデータベース レベルで完了します。
初期のエンタープライズ システムには多くのデータベース設計があり、プログラマーが削除および更新操作を節約するのには役立ちますが、実際には隠れたルールが増加し、ソフトウェアが複雑になり、パフォーマンスが低下します。
したがって、アプリケーション設計では、データベース レベルではなく、アプリケーション層 (トランザクション処理メカニズムの使用など) でデータの整合性を確保するように最善を尽くす必要があります。
以下は、MySQL の外部キーの概要です。
MySQL で外部キーをサポートする唯一のストレージ エンジンは InnoDB です。外部キーを作成するときは、親テーブルに対応する ## が必要です。 #index. サブテーブル外部キーの作成時に、対応するインデックスも自動的に作成されます。
インデックスを作成するとき、親テーブルを削除または更新するときに、子テーブルで対応する操作 (- RESTRICT (制限制限)
を含む) を指定できます。
#アクションなし - SET NULL
- CASCADE (連結)
- #RESTRICT は NO ACTION と同じです。つまり、 子テーブルに関連レコード
親テーブルは更新できません; CASCADE は parent を意味しますtable
が を更新または削除すると、 は子テーブル の対応するレコードを更新または削除します; SET NULL は、親テーブルが更新または削除されると、対応するフィールドが更新または削除されることを意味します子テーブルの は SET NULL です。 例
Create database test;
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;
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 の場合、外部キー制約に違反して挿入は失敗します。これは、外部キー sid が、 stu テーブル。つまり、stu の ID には 22 に等しいデータがありません。
カスケード削除: stu テーブル内の ID 2 の学生を削除すると、sc テーブル内の学生の成績もカスケード削除されます
delete from stu where sid = '2';
カスケード更新: stu テーブル内の ID 3 の学生は ID 6 に変更され、sc テーブル内の学生の対応する ID もカスケード
update stu set sid=6 where sid='3';
で更新されます。注
#上の図は通常の削除を示しています。最初に sc テーブルを削除してから、stu テーブルを削除してください。
以上がMySQL 外部キー カスケードを実装する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ホットAIツール

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

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

Undress AI Tool
脱衣画像を無料で

Clothoff.io
AI衣類リムーバー

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

人気の記事

ホットツール

メモ帳++7.3.1
使いやすく無料のコードエディター

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

ゼンドスタジオ 13.0.1
強力な PHP 統合開発環境

ドリームウィーバー CS6
ビジュアル Web 開発ツール

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

ホットトピック









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

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

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

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

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

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

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

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