- 时间:2021-09-29 00:10 编辑: 来源: 阅读:
- 扫一扫,手机访问
摘要:MySQL 关闭子表的外键约束检察方法
[b]准备:[/b]
定义一个教师表、一个学生表;在学生表中引用教师表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);
[b]第一步:[/b]
插入一个老师
insert into teachers(teacherName) values('NameA');
[img]http://files.jb51.net/file_images/article/201703/201703180958572.png[/img]
插入一个学生:
insert into students(studentName,teacherID) values('NameB',100);--可以知道没有这个教师号、所以插入会出错。
[img]http://files.jb51.net/file_images/article/201703/201703180958573.png[/img]
不过有没有办法可以插入一条不合理的数据呢?办法还是有的
[b]第二步:[/b]
set foreign_key_checks = 0; 这样就可以了。
insert into students(studentName,teacherID) values('NameB',100);
[img]http://files.jb51.net/file_images/article/201703/201703180958574.png[/img]
[b]第三步:[/b]
设置回默认值、保持外键约束检察。
set foreign_key_checks =1;
[b]总结:[/b]
这篇随笔写的特别的乱、我想说的重点就是 set foreign_key_checks =0;时外键约束是没有用的。这时可以对子表进行违反外键约束的插入。
不到万不得以不要用这个。
以上这篇MySQL 关闭子表的外键约束检察方法就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持编程素材网。