zoukankan      html  css  js  c++  java
  • 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;时外键约束是没有用的。这时可以对子表进行违反外键约束的插入。

      不到万不得以不要用这个。

      

      

      

  • 相关阅读:
    C#生成唯一码方法
    解剖常用软件程序都用什么语言开发
    Unity3D笔记七 GUILayout
    函数的递归
    函数
    函数的参数
    函数的返回值
    函数的定义
    文件处理
    集合
  • 原文地址:https://www.cnblogs.com/JiangLe/p/4419910.html
Copyright © 2011-2022 走看看