首页 > 数据库 >MySQL外键约束

MySQL外键约束

时间:2023-04-08 12:45:11浏览次数:35  
标签:记录 父表 外键 约束 MySQL 子表 NULL 对应

 

 

 

 

ON DELETE
RESTRICT(约束):当在父表(即外键的来源表)中删除对应记录时,首先检查该记录是否有对应外键,如果有则不允许删除。

NO ACTION:意思同RESTRICT.即如果存在从数据,不允许删除主数据。

CASCADE(级联):当在父表(即外键的来源表)中删除对应记录时,首先检查该记录是否有对应外键,如果有则也删除外键在子表(即包含外键的表)中的记录。

SET NULL:当在父表(即外键的来源表)中删除对应记录时,首先检查该记录是否有对应外键,如果有则设置子表中该外键值为NULL(不过这就要求该外键允许取NULL)

ON UPDATE
RESTRICT(约束):当在父表(即外键的来源表)中更新对应记录时,首先检查该记录是否有对应外键,如果有则不允许更新。

NO ACTION:意思同RESTRICT(外键id不能被更新,其他内容可以).

CASCADE(级联):当在父表(即外键的来源表)中更新对应记录时,首先检查该记录是否有对应外键,如果有则也更新外键在子表(即包含外键的表)中的记录。

SET NULL:当在父表(即外键的来源表)中更新对应记录时,首先检查该记录是否有对应外键,如果有则设置子表中该外键值为NULL(不过这就要求该外键允许取NULL)。

注:NO ACTION和RESTRICT的区别:只有在及个别的情况下会导致区别,前者是在其他约束的动作之后执行,后者具有最高的优先权执行。

标签:记录,父表,外键,约束,MySQL,子表,NULL,对应
From: https://www.cnblogs.com/outsrkem/p/17298327.html

相关文章

  • MySQL必会必知笔记
    1.简单使用[root@mysql~]#mysql-uroot-p123<hellodb_innodb.sql所有命令都是在hellodb库中执行,此库可以在MySQL官网下载进入库[root@mysql~]#mysql-uroot-p123查询所有的库mysql>showdatabases;进入库mysql>usehellodb;查询库里的所有表mysql>showtab......
  • MYSQL进阶之索引
    1、什么是索引官方介绍索引是帮助MySQL高效获取数据的数据结构。更通俗的说,数据库索引好比是一本书前面的目录,能加快数据库的查询速度。一般来说索引本身也很大,不可能全部存储在内存中,因此索引往往是存储在磁盘上的文件中的(可能存储在单独的索引文件中,也可能和数据一起存储在数......
  • 力扣1070(MySQL)-产品销售分析Ⅲ(中等)
    题目:销售表 Sales: 产品表 Product:编写一个SQL查询,选出每个销售产品 第一年销售的产品id、年份、数量 和价格。结果表中的条目可以按任意顺序排列。查询结果格式如下例所示:示例1: 来源:力扣(LeetCode)链接:https://leetcode.cn/problems/product-sales-analysis......
  • Mysql_无法删除数据库的处理方法
    问题现象使用Navicat删除数据库一直转圈定位问题执行 SHOWPROCESSLIST;  提示元数据无法被锁定执行  select*frominformation_schema.innodb_trx\G; 发现有进程一直处于运行中解决方法kill进程id 重新查看没有 Waiting进程,showdatabases; 发现库已被......
  • 0-MySQL常见错误代码及代码说明
    先转载一下优秀作者的文章,后期会逐渐完善! 作者:理想三旬出处:https://www.cnblogs.com/operationhome/p/9095522.html......
  • 力扣1069(MySQL)-产品分析Ⅱ(简单)
    题目:编写一个SQL查询,按产品idproduct_id来统计每个产品的销售总量。查询结果格式如下面例子所示: 解题思路:没有用到product表,直接在sales表中使用聚合函数:1selectproduct_id,sum(quantity)astotal_quantity2fromsales3groupbyproduct_id;......
  • yum 安装Mysql
    1.yum源下载安装https://dev.mysql.com/downloads/repo/yum/yumlocalinstall-ymysql80-community-release-el7-7.noarch.rpmyumrepolistenabled|grep"mysql.*-community.*"修改/etc/yum.repos.d/mysql-community.repo[mysql57-community]enabled=12.安装mysqlyumin......
  • 力扣1068(MySQL)-产品销售分析Ⅰ(简单)
    题目:销售表 Sales: 产品表 Product:写一条SQL 查询语句获取Sales 表中所有产品对应的产品名称product_name以及该产品的所有售卖年份year 和价格price。查询结果中的顺序无特定要求。查询结果格式示例如下: 来源:力扣(LeetCode)链接:https://leetcode.cn/proble......
  • Mysql索引原理
    什么是索引索引是一种单独的、物理的对数据库表中一列或多列的值进行排序的一种存储结构,为了优化数据库查询效率,引入的数据结构,类似于书的目录索引的分类普通索引--创建索引的基本语法CREATEINDEXindexNameONtable(column(length));主键索引联合索引--......
  • MYSQL进阶之存储引擎
    1、概念存储引擎就是存储数据、建立索引、更新/查询数据等技术的实现方法。其基于表的,而不是基于库的,所以存储引擎也称为表类型。在建表的时候,不指定存储引擎,默认的存储引擎是InnoDB。查看建表语句:showcreatetable表名; 可看到默认的存储引擎就是InnoDB 在建表的时候,......