以下のエディターは、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');
が生徒を挿入します:
insert into students(studentName,teacherID) values('NameB',100);--可以知道没有这个教师号、所以插入会出错。
しかし、不当なデータを挿入する方法はあるでしょうか?まだ方法はあります
ステップ 2:
setforeign_key_checks = 0; 以上です。
insert into students(studentName,teacherID) values('NameB',100);
ステップ 3:
デフォルト値に戻し、外部キー制約検査を維持します。
set foreign_key_checks =1;
要約:
このエッセイは非常に厄介です。私が言いたい主な点は、foreign_key_checks =0; に設定すると外部キー制約が役に立たないということです。このとき、外部キー制約に違反するサブテーブルへの挿入が実行される可能性があります。
絶対に必要な場合を除き、これを使用しないでください。
以上がMySQLで子テーブルを閉じる外部キー制約検査方法を詳しく解説(写真)の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。