MySQL--外键及数据完整性

外键概述

MySQL中的InnoDB存储引擎是支持外键的,传统引擎的不支持。外键是把一个表中的索引列与另一个表中的索引列关联起来,以实现同步操作的目的,也是保证了数据的完整性

一般实现外键需要两张或以上的表:主表和从表,比如主表为班级表,从表为学生表,每个学生都在指定的班级里,那么主表的ID和从表的class_id就形成了关联,而class_id就是我们所说的外键。

外键模式

外键有两种主要操作模式:删除时(ON DELETE)和更新时(ON UPDATE)。在删除或更新状态下,有四种情况:
1、RESTRICT,默认设置,当主表id关联着从表数据(class_id)时,无法删除和修改的;
2、SET NULL,当主表记录被删除或修改时,从表的class_id被设置成为NULL(注意:这个字段要允许NULL才行);
3、CASADE,当主表记录被删除或修改时,从表关联数据也会被删除或class_id相应修改;
4、NO ACTION,当主表记录被删除或修改时,如果关联着字表,则产生一个错误并回滚之前的操作。

使用范围

一般来说,外键有较强的数据约束性,保证了数据的安全和完整,特别适合于数据库项目使用。而对于我们的Web项目,基于支持度、性能、方便、以及程序代码的可读性考虑,可能使用外键的较少。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值