MySQLで子テーブルを閉じる外部キー制約検査方法を詳しく解説(写真)

黄舟
リリース: 2017-03-18 14:01:26
オリジナル
1409 人が閲覧しました

以下のエディターは、MySQL でサブテーブルを閉じる外部キー制約検査方法に関する記事をお届けします。編集者はこれが非常に良いものだと思ったので、皆さんの参考として今から共有します。エディターをフォローして一緒に見てみましょう

準備:

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

create table teachers(teacherID int not null auto_increment primary key,teacherName varchar(8));
create table students(studentID int not null auto_increment primary key,teacherID int not null,studentName varchar(8),
constraint fk_students_teacherID foreign key (teacherId) references teachers(teacherId) on delete no action on update cascade);
ログイン後にコピー

ステップ 1:

挿入a 教師

insert into teachers(teacherName) values('NameA');
ログイン後にコピー

MySQLで子テーブルを閉じる外部キー制約検査方法を詳しく解説(写真)

が生徒を挿入します:

insert into students(studentName,teacherID) values('NameB',100);--可以知道没有这个教师号、所以插入会出错。
ログイン後にコピー

MySQLで子テーブルを閉じる外部キー制約検査方法を詳しく解説(写真)

しかし、不当なデータを挿入する方法はあるでしょうか?まだ方法はあります

ステップ 2:

setforeign_key_checks = 0; 以上です。

insert into students(studentName,teacherID) values('NameB',100);
ログイン後にコピー

MySQLで子テーブルを閉じる外部キー制約検査方法を詳しく解説(写真)

ステップ 3:

デフォルト値に戻し、外部キー制約検査を維持します。

set foreign_key_checks =1;
ログイン後にコピー

要約:

このエッセイは非常に厄介です。私が言いたい主な点は、foreign_key_checks =0; に設定すると外部キー制約が役に立たないということです。このとき、外部キー制約に違反するサブテーブルへの挿入が実行される可能性があります。

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

以上がMySQLで子テーブルを閉じる外部キー制約検査方法を詳しく解説(写真)の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

関連ラベル:
ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
最新の問題
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート