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

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

      

      

      

  • 相关阅读:
    996工作制是奋斗还是剥削?
    动态链接的PLT与GOT
    The Product-Minded Software Engineer
    缓冲区溢出
    golang的加法比C快?
    C errno是否是线程安全的
    golang 三个点的用法
    GDB 单步调试汇编
    为什么CPU需要时钟这种概念?
    fliebeat配置手册
  • 原文地址:https://www.cnblogs.com/JiangLe/p/4419910.html
Copyright © 2011-2022 走看看