下面小編就為大家帶來一篇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');
插入一個學生:
insert?into?students(studentName,teacherID)?values('NameB',100);--可以知道沒有這個教師號、所以插入會出錯。
不過有沒有辦法可以插入一條不合理的數據呢?辦法還是有的
第二步:
set foreign_key_checks = 0; 這樣就可以了。
insert?into?students(studentName,teacherID)?values('NameB',100);
第三步:
設置回默認值、保持外鍵約束檢察。
set?foreign_key_checks?=1;
總結:
這篇隨筆寫的特別的亂、我想說的重點就是 set foreign_key_checks =0;時外鍵約束是沒有用的。這時可以對子表進行違反外鍵約束的插入。
不到萬不得以不要用這個。
? 版權聲明
文章版權歸作者所有,未經允許請勿轉載。
THE END