準備する: 教師テーブルと生徒テーブルを定義し、生徒テーブルで教師テーブル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 の具体的な使用法
まず、GB2312、GBK、UTF-8 はすべて文字エンコーディングであることを理解する必要がありま...
1. イベントバブリング: JavaScript イベント伝播のプロセスでは、要素でイベントがトリガ...
通常、Web サイトを構築する目的は、検索エンジンにインデックス登録してもらい、プロモーションを拡大...
通常、フィールド値を更新するには次の SQL ステートメントを使用します。 mytable を更新し...
この記事の例では、簡単な計算機を実装するための小さなプログラムの具体的なコードを参考までに共有してい...
inline-block プロパティ値は、「インライン」要素のマージンとパディングを制御する必要があ...
1. インデックス不足または無効なインデックスによるクエリの遅延数千万件のデータを含むテーブルで、イ...
目次序文メタデータとは参照文書アドレスまずはMySQLについてお話しましょうOracleについて話し...
まず、次の質問について考えてみましょう。このような膨大な量のデータをデータベースに挿入するには、通常...
idea を使用して JSP ファイルを書き込む前に、jdk 環境 (ここでは説明しません) と対応...
目次成果を達成する転がり荷重知識備蓄コンポーネントのパッケージ1. コンポーネントの命名2. 小道具...
この記事は元々ブロガーのWeiwei Miaoによって書かれたものです。ブログホームページ: htt...
名前を格納するフィールドが GBK 文字セットを使用している場合、GBK 内部コード自体がエンコード...
目次1.1. MySQL binlog を有効にする1.2. RabbitMQ の交換とキューを構成...
目次1. コンセプト2. 環境の説明3. マスタースレーブホットスタンバイ実装1. コンセプト1. ...