MySQL 子テーブルで外部キー制約チェックを無効にする方法

MySQL 子テーブルで外部キー制約チェックを無効にする方法

準備する:

教師テーブルと生徒テーブルを定義し、生徒テーブルで教師テーブルIDを参照します。

テーブルteachersを作成します(teacherID int not null auto_increment primary key,teacherName varchar(8));

学生テーブルを作成します(学生ID int not null auto_increment 主キー、教師ID int not null、学生名 varchar(8)、

制約 fk_students_teacherID 外部キー (teacherId) は teachers(teacherId) を参照します (削除時にアクションは発生しません、更新時にはアクションは発生しません)。

最初のステップ:

先生を挿入

教師に(教師名)値('NameA')を挿入します。

生徒を挿入:

insert into students(studentName,teacherID) values('NameB',100);--そのような教師IDは存在しないため、挿入は失敗することがわかります。

しかし、不合理なデータを挿入する方法はあるのでしょうか?まだ道はある

ステップ2:

foreign_key_checks = 0; に設定するだけです。

学生に(学生名、教師ID)値('NameB'、100)を挿入します。

ステップ3:

デフォルト値に戻して、外部キー制約のチェックを維持します。

foreign_key_checks = 1 を設定します。

要約:

このエッセイは非常に乱雑です。私が言いたい主な点は、foreign_key_checks = 0; に設定すると外部キー制約は役に立たなくなるということです。このとき、外部キー制約に違反する子テーブルに挿入することができます。

絶対に必要な場合を除いてこれを使用しないでください。

子テーブルを閉じるためのMySQL外部キー制約チェック方法に関する上記の記事は、私が皆さんと共有したいことのすべてです。これが皆さんの参考になれば幸いです。また、123WORDPRESS.COMを応援していただければ幸いです。

以下もご興味があるかもしれません:
  • MySQL に外部キー制約を追加する具体的な方法
  • MySQL 外部キー制約 (FOREIGN KEY) ケースの説明
  • MySQL 外部キー制約とテーブル関係の概要
  • MySQL 外部キー制約の例の説明
  • MySQL 外部キー制約の詳細な説明
  • 外部キー制約を持つテーブルデータを削除する MySQL メソッドの紹介
  • MySQL テーブルを削除するときに外部キー制約を無視するシンプルな実装
  • MySQL で外部キー制約を作成および削除する方法

<<:  Unix/Linux システムにおける nobody ユーザーと nologin の詳細な紹介

>>:  nestjs における例外フィルター Exceptionfilter の具体的な使用法

推薦する

Vue での ElementUI の使用に関する詳細な説明

ログイン + セッションストレージエフェクト表示ログインに成功すると、ユーザー ID がフロントエン...

Dockerディスク容量不足の問題を解決する

Docker が配置されているサーバーをしばらく稼働させたところ、サーバーのディスク ディレクトリの...

Linux のファイル権限とグループ変更コマンドの詳細な説明

Linux では、すべてがファイルであり (ディレクトリもファイルです)、各ファイルにはユーザーに対...

Mysql が CPU を過剰に占有する場合の最適化方法 (必読)

Mysql が CPU を占有しすぎる場合、どこから最適化を開始すればよいでしょうか? CPU 使...

MySQL の集計関数 count の使用法とパフォーマンスの最適化テクニック

この記事の環境はWindows 10、MySQLのバージョンは5.7.12-logです1. 基本的な...

Vue で Graphql インターフェースを実装する例

注意:この記事は現在取り組んでいる nestjs+graphql+serverless 合宿における...

Linux での MySQL 5.7.19 のインストールに関する問題の概要

初めて仮想マシンに MySQL をインストールしたとき、多くの問題が発生しました。ここでそれらを書き...

Docker ベースの ELK を素早く構築する方法

[概要] この記事では、自作の Docker プラットフォームをベースに完全な ELK システムを素...

データベースクエリ、どのオブジェクトにどのフィールドが含まれているか、メソッドステートメント

データベースは、どのオブジェクトにどのフィールドが含まれているかを照会します。 *を選択 sysob...

MySQLバックアップとリカバリの実践に関する詳細な説明

1. mysqlbackup の紹介mysqlbackup は、MySQL Enterprise B...

Ubuntu 16.04 で Python 3 を使用して Django プロジェクトを作成し、実行する方法

ステップ1: Djangoプロジェクトを作成するターミナルを開き、書き込みたいプロジェクトのアドレス...

フォーム入力ボックスに関するWebデザインのヒント

この記事では、Web デザインにおけるフォーム入力ボックスに関するヒントとコードをいくつか紹介します...

jQueryはキャンバスタグを使用して検証コードを描画します

<canvas> 要素は、クライアント側のベクター グラフィックス用に設計されています。...

Docker に Solr 8.6.2 をインストールし、中国語の単語セグメンターを構成する方法

1. 環境バージョンDocker バージョン 19.03.12セントロス7ソル8.6.2 2. Do...