时间:2021-05-24
准备:
定义一个教师表、一个学生表;在学生表中引用教师表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;时外键约束是没有用的。这时可以对子表进行违反外键约束的插入。
不到万不得以不要用这个。
以上这篇MySQL 关闭子表的外键约束检察方法就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持。
声明:本页内容来源网络,仅供用户参考;我单位不保证亦不表示资料全面及准确无误,也不保证亦不表示这些资料为最新信息,如因任何原因,本网内容或者用户因倚赖本网内容造成任何损失或损害,我单位将不会负任何法律责任。如涉及版权问题,请提交至online#300.cn邮箱联系删除。
MySQL外键约束的禁用与启用:MySQL外键约束是否启用是通过一个全局变量标示的:FOREIGN_KEY_CHECKS=0;禁用状态FOREIGN_KEY_C
racle使用外键来限制子表中参考的字段值,要求子表中的数据必须在主表中存在。当主表的记录发生变化时导致外键参考唯一约束值发生了变化时,Oracle指定了三种动
方法:1.删除所有外键约束2.drop表3.添加外键约束代码使用powerdesign生成/*=================================
前言在mysql3.23.44版本后,innodb引擎类型的表支持了外键约束。外键的使用条件:1.两个表必须是innodb表,myisam表暂时不支持外键(据说
外键在MySQL中,表有两种引擎,一种是InnoDB,另外一种是myisam。如果使用的是InnoDB引擎,是支持外键约束的。外键的存在使得ORM框架在处理表关