關於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);
登入後複製

第一步:

插入一個老師

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;時外鍵約束是沒有用的。這時可以對子表進行違反外鍵約束的插入。

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

以上是關於MySQL關閉子表的外鍵約束檢察方法的詳解(圖)的詳細內容。更多資訊請關注PHP中文網其他相關文章!

相關標籤:
來源:php.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板