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;时外键约束是没有用的。这时可以对子表进行违反外键约束的插入。
不到万不得以不要用这个。
MySQL 关闭子表的外键约束检察的更多相关文章
- MySQL删除所有表的外键约束、禁用外键约束
转: MySQL删除所有表的外键约束.禁用外键约束 2017年10月27日 00:11:34 李阿飞 阅读数:4512 版权声明:本文为博主原创文章,未经博主允许不得转载. https://blo ...
- (转载)MySQL删除所有表的外键约束、禁用外键约束
其实如果想删除所有表可以直接如下操作: 在navicat中直接选中所有表,然后右键删除表即可,会有提示,一路确定,就会先删掉没有外键的表和字表,只要一路确定,删几批就把表都删完了,并不算太麻烦. 转: ...
- sql数据库删除表的外键约束(INSERT 语句与 FOREIGN KEY 约束"XXX"冲突。该冲突发生于数据库"XXX",表"XXX", column 'XXX)
使用如下SQL语句查询出表中外键约束名称: 1 select name 2 from sys.foreign_key_columns f join sys.objects o on f.constra ...
- laravel模型表建立外键约束的使用:
模型: //表->posts class Post extends Model { //关联用户: public function user(){ //belongsTo,第一个参数:外键表,第 ...
- MySql图解给表添加外键
关于外键约束的几种方式,请移步鄙人的另外一个博客中的博文 http://blog.csdn.net/hadues/article/details/52558184
- mysql操作说明,插入时外键约束,快速删除
快速删除: CMD命令 SET FOREIGN_KEY_CHECKS=0;去除外键约束 truncate table 表名;
- SQLServer 删除所有表的外键约束
)) begin exec(@c1) fetch next from c1 into @c1 endclose c1deallocate c1
- truncate有外键约束的表,报ORA-02266处理。
问题描述:当父表有子表的外键约束时,无法直接truncate父表.报ORA-02266: unique/primary keys in table referenced by enabled fore ...
- Oracle开发 之 主-外键约束FK及约束的修改
试验环境: 1)数据库版本:oracle 11.2.0.4 2)建表脚本:以scott的dept及emp表为基础. 父表:dept -- Create table create table DEPT ...
随机推荐
- 在IOS开发中,属性名为id的处理方法
在.h 文件中定义属性名为id { int _id; } @property (nonatomic, assign) int id; 在.m 文件中用synthesize声明该属性,会自动生成get和 ...
- JAVA 从GC日志分析堆内存 第七节
JAVA 从GC日志分析堆内存 第七节 在上一章中,我们只设置了整个堆的内存大小.但是我们知道,堆又分为了新生代,年老代.他们之间的内存怎么分配呢?新生代又分为Eden和Survivor,他们的比 ...
- Lua与C++的交互
这篇文章说的挺详细的:Lua与C++的交互
- hdu1238--Substrings
暴力求解 题意:求一个公共子串的最大长度,反转的公共子串存在也算. 求解思路:先找出最短的字符串进行暴力枚举.每截取一个子串后,求出它的反转字符串,然后检验这两个子字符串是否存在输入的字符串组中,每个 ...
- C#获得命令提示符输出
原文:http://blog.csdn.net/abrahu/article/details/6611504 C#获得命令提示符输出 分类: c#应用程序2011-07-16 23:34 600人阅读 ...
- hadoop笔记之Hive入门(Hive的体系结构)
Hive入门(二) Hive入门(二) Hive的体系结构 ○ Hive的元数据 Hive将元数据存储在数据库中(metastore),支持mysql.derby.oracle等数据库,Hive默认是 ...
- Vmware 克隆CentOS 网络IP配置
在VMware里克隆出来的CentOS Linux.. ifconfig...没有看到eth0..然后重启网卡又报下面错误. 故障现象: service network restart Shuttin ...
- Android XListView实现原理讲解及分析
XListview是一个非常受欢迎的下拉刷新控件,但是已经停止维护了.之前写过一篇XListview的使用介绍,用起来非常简单,这两天放假无聊,研究了下XListview的实现原理,学到了很多,今天分 ...
- MFC的命令行
一个程序,我们通过输入不同的命令行参数,就可以实现一个可执行文件,多种功能,通过命令行来控制它的行为,例如,我们在控制台的时候,就是遇到最多的,如一个exe程序,加入为test..exe,我们可以设置 ...
- poj2728 Desert King --- 01分数规划 二分水果。。
这题数据量较大.普通的求MST是会超时的. d[i]=cost[i]-ans*dis[0][i] 据此二分. 但此题用Dinkelbach迭代更好 #include<cstdio> #in ...