MySQL 關(guān)閉子表的外鍵約束檢察方法
準(zhǔn)備:
定義一個(gè)教師表、一個(gè)學(xué)生表;在學(xué)生表中引用教師表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);
第一步:
插入一個(gè)老師
insert into teachers(teacherName) values('NameA');
插入一個(gè)學(xué)生:
insert into students(studentName,teacherID) values('NameB',100);--可以知道沒有這個(gè)教師號(hào)、所以插入會(huì)出錯(cuò)。
不過有沒有辦法可以插入一條不合理的數(shù)據(jù)呢?辦法還是有的
第二步:
set foreign_key_checks = 0; 這樣就可以了。
insert into students(studentName,teacherID) values('NameB',100);
第三步:
設(shè)置回默認(rèn)值、保持外鍵約束檢察。
set foreign_key_checks =1;
總結(jié):
這篇隨筆寫的特別的亂、我想說的重點(diǎn)就是 set foreign_key_checks =0;時(shí)外鍵約束是沒有用的。這時(shí)可以對(duì)子表進(jìn)行違反外鍵約束的插入。
不到萬不得以不要用這個(gè)。
以上這篇MySQL 關(guān)閉子表的外鍵約束檢察方法就是小編分享給大家的全部?jī)?nèi)容了,希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。
相關(guān)文章
一篇文章學(xué)會(huì)SQL中的遞歸用法(Mysql)
這篇文章主要給大家介紹了關(guān)于如何一篇文章學(xué)會(huì)SQL中的遞歸用法,眾所周知目前的mysql版本中并不支持直接的遞歸查詢,但是通過遞歸到迭代轉(zhuǎn)化的思路,還是可以在一句SQL內(nèi)實(shí)現(xiàn)樹的遞歸查詢的,需要的朋友可以參考下2023-10-10mysql時(shí)間格式和Java時(shí)間格式的對(duì)應(yīng)方式
這篇文章主要介紹了mysql時(shí)間格式和Java時(shí)間格式的對(duì)應(yīng)方式,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2023-08-08MYSQL必知必會(huì)讀書筆記第八章之使用通配符進(jìn)行過濾
這篇文章主要介紹了MYSQL必知必會(huì)讀書筆記第八章之使用通配符進(jìn)行過濾的相關(guān)資料,需要的朋友可以參考下2016-05-05Sql group by 分組取時(shí)間最新的一條數(shù)據(jù)(示例代碼)
這篇文章主要介紹了Sql group by 分組取時(shí)間最新的一條數(shù)據(jù),本文通過示例代碼給大家介紹的非常詳細(xì),感興趣的朋友跟隨小編一起看看吧2024-04-04MySQL5.6 數(shù)據(jù)庫主從同步安裝與配置詳解(Master/Slave)
本篇文章主要介紹了MySQL5.6 數(shù)據(jù)庫主從同步安裝與配置詳解,具有一定的參考價(jià)值,有興趣的可以了解一下。2017-01-01