準備する: 教師テーブルと生徒テーブルを定義し、生徒テーブルで教師テーブル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を応援していただければ幸いです。 以下もご興味があるかもしれません:
|
<<: Unix/Linux システムにおける nobody ユーザーと nologin の詳細な紹介
>>: nestjs における例外フィルター Exceptionfilter の具体的な使用法
ログイン + セッションストレージエフェクト表示ログインに成功すると、ユーザー ID がフロントエン...
Docker が配置されているサーバーをしばらく稼働させたところ、サーバーのディスク ディレクトリの...
Linux では、すべてがファイルであり (ディレクトリもファイルです)、各ファイルにはユーザーに対...
Mysql が CPU を占有しすぎる場合、どこから最適化を開始すればよいでしょうか? CPU 使...
この記事の環境はWindows 10、MySQLのバージョンは5.7.12-logです1. 基本的な...
注意:この記事は現在取り組んでいる nestjs+graphql+serverless 合宿における...
初めて仮想マシンに MySQL をインストールしたとき、多くの問題が発生しました。ここでそれらを書き...
[概要] この記事では、自作の Docker プラットフォームをベースに完全な ELK システムを素...
データベースは、どのオブジェクトにどのフィールドが含まれているかを照会します。 *を選択 sysob...
1. mysqlbackup の紹介mysqlbackup は、MySQL Enterprise B...
ステップ1: Djangoプロジェクトを作成するターミナルを開き、書き込みたいプロジェクトのアドレス...
この記事では、Web デザインにおけるフォーム入力ボックスに関するヒントとコードをいくつか紹介します...
<canvas> 要素は、クライアント側のベクター グラフィックス用に設計されています。...
HTML5 で contentEditable 属性が導入されて以来、div は textarea ...
1. 環境バージョンDocker バージョン 19.03.12セントロス7ソル8.6.2 2. Do...