關于MySQL關閉子表的外鍵約束檢察方法的詳解(圖)

下面小編就為大家帶來一篇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);

第一步:

插入一個老師

insert?into?teachers(teacherName)?values('NameA');

關于MySQL關閉子表的外鍵約束檢察方法的詳解(圖)

插入一個學生:

insert?into?students(studentName,teacherID)?values('NameB',100);--可以知道沒有這個教師號、所以插入會出錯。

關于MySQL關閉子表的外鍵約束檢察方法的詳解(圖)

不過有沒有辦法可以插入一條不合理的數據呢?辦法還是有的

第二步:

set foreign_key_checks = 0; 這樣就可以了。

insert?into?students(studentName,teacherID)?values('NameB',100);

關于MySQL關閉子表的外鍵約束檢察方法的詳解(圖)

第三步:

設置回默認值、保持外鍵約束檢察。

set?foreign_key_checks?=1;

總結:

這篇隨筆寫的特別的亂、我想說的重點就是 set foreign_key_checks =0;時外鍵約束是沒有用的。這時可以對子表進行違反外鍵約束的插入。

不到萬不得以不要用這個。

? 版權聲明
THE END
喜歡就支持一下吧
點贊5 分享