zoukankan      html  css  js  c++  java
  • mysql中设置外键约束及主表从表的关系

    1.新建外键代码

     alter table stu5 add constraint 编号 foreign key (bh) references stu2 (bh) on delete restrict on update restrict;

    说明:

    stu2和stu5是两张表,“编号”为字段bh的约束名(是stu5表中的一个属性),bh是stu2表中的主键,而bh并不是stu5的主键,那么则称stu2为主表,stu5为从表。

    注意:

    1.新建外键,子表外键字段列值必须是父表引用列值的子集【值都不能包含怎么做引用列?】。
    2.引用列字段必须是索引或主键或联合主键(索引值或联合主键值可重复,唯一主键不能重复)【不做索引怎么关联?】

    2.删除和更新有四种设置方式

    (1)cascade:级联,当父表更新、删除,子表所有同值记录会同步更新和删除【修改子表,必须保证修改后B表外键字段的值依然能在A表中找到,否则会报错。】(2)set null:置空,当父表更新、删除的时候,字表会把外键字段变为null,所以这个时候设计表的时候该字段要允许为null,否则会出错
    (3)restrict:父表在删除和更新记录的时候,要在子表中检查是否有有关该父表要更新和删除的记录,如果有,则不允许删除个更改
    (4)no action:和restrict一样

    (5)SET DEFAULT 指定如果试图删除某一行,而该行的键被其他表的现有行中的外键所引用,则组成被引用行中的外键的所有值将被设置为它们的默认值。目标表的所有外键列必须具有默认值定义,此约束才可执行。如果某个列可为空值,并且未设置显式的默认值,则会使用 NULL 作为该列的隐式默认值。因 ON DELETE SET DEFAULT 而设置的任何非空值在主表中必须有对应的值,才能维护外键约束的有效性。
    ————————————————
    版权声明:本文为CSDN博主「瘦不下来的吴彦祖」的原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接及本声明。
    原文链接:https://blog.csdn.net/zzy296753977/article/details/80848613

    在MySQL中,如果两个表存在主外关系,则有五种引用操作,分别是 cascade、no action、restrict、set null和set default,有很多人对no action的restrict区别搞不清楚,其实在MySQL中是一样的,原因如下:restrict是在修改或者删除之前去检查从表中是否有对应的数据,如果有,拒绝操作,而no action是来源标准的sql,在有些数据库中,会延迟检查,即在修改或者删除完以后去检查从表中是否有对应的数据,如果有,拒绝操作,但是在MySQL中,外键约束都会立即检查,所以两者等价。需要注意的是,set default只是MySQL 解析器认可,但是InnoDB和NDB 拒绝在定义表时,出现ON DELETE SET DEFAULT or ON UPDATE SET DEFAULT 语句。


    ————————————————
    版权声明:本文为CSDN博主「Infen」的原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接及本声明。
    原文链接:https://blog.csdn.net/infen/article/details/84009724


    ————————————————
    版权声明:本文为CSDN博主「fullStackChenZF」的原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接及本声明。
    原文链接:https://blog.csdn.net/fullStackChenZF/article/details/78031192

    删除外键命令:
    
    alter table 表名 drop foreign key 外键约束名称 //删除外键
    alter table stu2 drop foreign key 编号  //实例


  • 相关阅读:
    golang plugin插件的使用
    UE4 是如何渲染每一帧画面的
    虚幻4 Gbuffer
    学习一下虚幻4
    关于 Kapacitor 和 TickScript 的笔记
    SpringOne2020
    TICK Telegraf InfluxDB Chronograf Kapacitor 参考资料
    【转】高考英语常考短语100条
    「面试」拿到B站的意向书
    使用ABAP操作office Word文档
  • 原文地址:https://www.cnblogs.com/al88/p/12426695.html
Copyright © 2011-2022 走看看