资讯专栏INFORMATION COLUMN

MySQL外键设置中的的 Cascade、NO ACTION、Restrict、SET NULL

chuyao / 405人阅读

摘要:比如顾客表和商品表一个顾客可能会购买多个商品之间的关联身份就是顾客的编号或姓名唯一的。外键设置在商品表中。总结主键表是被引用的表,外键表是引用其他表的表。

1.几种模式

. cascade方式

在父表上update/delete记录时,同步update/delete掉子表的匹配记录 

. set null方式

在父表上update/delete记录时,将子表上匹配记录的列设为null
要注意子表的外键列不能为not null  

. No action方式

如果子表中有匹配的记录,则不允许对父表对应候选键进行update/delete操作  

. Restrict方式

同no action, 都是立即检查外键约束

. Set default方式

父表有变更时,子表将外键列设置成一个默认的值 但Innodb不能识别

2.关于主表,外键,从表

一个人的身份唯一,但是可以干很多事,身份是主表,干的事实从表,从表里面的标示id即用户的身份,就是主表的外键,。
比如 顾客表 和商品表
一个顾客可能会购买多个商品 之间的关联身份就是顾客的编号或姓名 唯一的。
外键设置在商品表中。

总结:主键表是被引用的表,外键表是引用其他表的表。

文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。

转载请注明本文地址:https://www.ucloud.cn/yun/46819.html

相关文章

  • Mysql外键设置中的CASCADENO ACTIONRESTRICTSET NULLMYSQ

    摘要:更新从表记录不存在时,主表菜可以更新,更新从表,主表不变。删除删除主表时自动删除从表。 MYSQL在设置外键的时候,删除时和更新时两列有四个值可以选择:CASCADE、NO ACTION、RESTRICT、SET NULL,它们的区别如下: CASCADE:父表delete、update的时候,子表会delete、upda...

    不知名网友 评论0 收藏0
  • mysql外键约束(级联操作等) 父表子表

    摘要:目前只有引擎类型支持外键约束。外键约束使用最多的两种情况无外乎父表更新时子表也更新,父表删除时如果子表有匹配的项,删除失败父表更新时子表也更新,父表删除时子表匹配的项也删除。 不理解的地方标注问号。 网上不同的博客讲的,之间似乎有些矛盾,求推荐好书。 写得不好请指出错误。 父表和子表 当两个表建立一对多关系的时候,一的那一端是父表,多的那一端是子表。父表设置一个主键子表设置一个外键...

    avwu 评论0 收藏0
  • MySQL-浅谈存储引擎

    摘要:目前,只有引擎支持事务操作。其他引擎可能非专业接触不到,所以接下来的存储引擎将围绕上面个展开。引擎望文生义,引擎就是将引擎进行合并。适用场景主要用于存储内容变化不频繁的代码表,或者是作为统计操作的中间结果表。 MySQL中的存储引擎 一、前言 数据库作为存储数据的仓库,可能大家会想,关系型数据库把我们的数据一行一行地存储不就完事了吗?哪里又冒出个存储引擎呢? 之所以有多个存储引擎,是因...

    tinyq 评论0 收藏0
  • Mysql进阶技巧(1)】 MySQL的多表关联与自连接

    摘要:支持种不同的动作,如果没有指定或者,默认的动作为从父表中删除或更新对应的行,同时自动的删除或更新子表中匹配的行。从父表中删除或更新对应的行,同时将子表中的外键列设为空。指定或者和忽略或者选项的效果是一样的。 自连接 测试数据准备 CREATE TABLE `t2` ( `id` int(11) NOT NULL, `gid` char(1) DEFAULT NULL, `c...

    kel 评论0 收藏0
  • mysql外键的使用

    摘要:一早就知道有有外键这回事,但是貌似平时的项目中用到的并不多,以至于我没有去研究过这个东西,也不知道该怎么用。这篇文章先搞清楚外键的作用。接着建一张包含外键的表。 一早就知道有mysql有外键这回事,但是貌似平时的项目中用到的并不多,以至于我没有去研究过这个东西,也不知道该怎么用。当然也不清楚对性能的影响。这篇文章先搞清楚外键的作用。 首先来添加一张表,做为测试要用的一张参考表。 CRE...

    fevin 评论0 收藏0

发表评论

0条评论

chuyao

|高级讲师

TA的文章

阅读更多
最新活动
阅读需要支付1元查看
<