码农知识堂 - 1000bd
  •   Python
  •   PHP
  •   JS/TS
  •   JAVA
  •   C/C++
  •   C#
  •   GO
  •   Kotlin
  •   Swift
  • mysql的常见的外键约束


    一  mysql的常见的外键约束策略

    设计外键时,mysql提供了4种外键关联策略

    1、RESTRICT 限制(默认)

    如果有外键关联了tb_class 的id,则tb_class 不能删除被关联的记录、不能更新关联记录deptId字段的值(会报错)。

    2、CASCADE 级联

    删除tb_class 中的记录时,会自动删除tb_student中与之关联的记录;修改tb_class中tb_student字段的值时,会自动修改tb_student中与之关联的记录的外键字段的值(同步变化)。

    3、NO ACTION 不做处理

    删除、更新tb_class中的id字段的值时,tb_student中与之关联的记录不作任何处理。此种策略需要存储引擎支持,如果存储引擎不支持,会自动换为RESTRICT。

    4、SET NULL 置为NULL

    删除tb_student的记录,或者更新id字段的值,会自动将tb_student中与之关联的记录的外键字段的值置为NULL。

    二 案例

    1.新建一个tb_class 和一个tb_student表

    CREATE TABLE `tb_class` (
      `id` int(11) NOT NULL,
      `class_name` varchar(255) DEFAULT NULL,
      PRIMARY KEY (`id`)
    ) ENGINE=InnoDB DEFAULT CHARSET=utf8;

    CREATE TABLE `tb_student` (
      `id` int(11) NOT NULL,
      `sname` varchar(255) DEFAULT NULL,
      `cid` int(11) DEFAULT NULL,
      PRIMARY KEY (`id`),
      KEY `cid` (`cid`),
      CONSTRAINT `tb_student_ibfk_1` FOREIGN KEY (`id`) REFERENCES `tb_class` (`id`)
    ) ENGINE=InnoDB DEFAULT CHARSET=utf8;

    1.首先需要添加数据时候,修改数据,删除数据时候,都必须先把父表进行操作,直接操作子表,则报错:

    2.直接删除父表,有子表的引用,不让删除

     

     

  • 相关阅读:
    xshell使用方法(超详细)
    Kubernetes:(十一)KubeSphere的介绍和安装(华丽的篇章)
    Mac 电脑 maven 每次重启后,终端都失效的解决办法
    MySQL数据表操作实战
    为Mkdocs网站添加评论系统(以giscus为例)
    聊聊ChatGLM-6B的源码分析
    分类和static
    物联网开发笔记(38)- 使用Micropython开发ESP32开发板之控制温度传感器(DS18B20)
    计算机网络概述(接入网和物理媒体)
    【调度算法】NSGA II
  • 原文地址:https://blog.csdn.net/u011066470/article/details/126884250
  • 最新文章
  • 攻防演习之三天拿下官网站群
    数据安全治理学习——前期安全规划和安全管理体系建设
    企业安全 | 企业内一次钓鱼演练准备过程
    内网渗透测试 | Kerberos协议及其部分攻击手法
    0day的产生 | 不懂代码的"代码审计"
    安装scrcpy-client模块av模块异常,环境问题解决方案
    leetcode hot100【LeetCode 279. 完全平方数】java实现
    OpenWrt下安装Mosquitto
    AnatoMask论文汇总
    【AI日记】24.11.01 LangChain、openai api和github copilot
  • 热门文章
  • 十款代码表白小特效 一个比一个浪漫 赶紧收藏起来吧!!!
    奉劝各位学弟学妹们,该打造你的技术影响力了!
    五年了,我在 CSDN 的两个一百万。
    Java俄罗斯方块,老程序员花了一个周末,连接中学年代!
    面试官都震惊,你这网络基础可以啊!
    你真的会用百度吗?我不信 — 那些不为人知的搜索引擎语法
    心情不好的时候,用 Python 画棵樱花树送给自己吧
    通宵一晚做出来的一款类似CS的第一人称射击游戏Demo!原来做游戏也不是很难,连憨憨学妹都学会了!
    13 万字 C 语言从入门到精通保姆级教程2021 年版
    10行代码集2000张美女图,Python爬虫120例,再上征途
Copyright © 2022 侵权请联系2656653265@qq.com    京ICP备2022015340号-1
正则表达式工具 cron表达式工具 密码生成工具

京公网安备 11010502049817号