外键是指表中某一字段的值依赖于另一表中某字段的值,被依赖的字段必须具有主键约束或唯一约束。
    被依赖的表称为主表或父表,设置外键的表称为从表或子表。
    外键只有表级约束,没有列级约束。
    image.png
    主表中字段值不存在,从表依赖的外键字段值不能添加。
    从表中依赖的外键值存在,主表中不能删除被依赖的外键值。

    外键策略
    删表:先删主表,再删从表
    删数据:先删从表数据,再删主表数据
    cascade:级联操作,操作主表的时候会影响从表的外键信息(可能对生产库数据造成很大影响)

    1. alter table t student add constraint fk_ stu classno foreign key (classno)
    2. references t_class (cno) on update cascade on delete cascade;

    级联置空操作 set null

    1. alter table t student add constraint fk_ stu classno foreign key (classno)
    2. references t_class (cno) on update set null on delete set null;

    两种级联策略可以混用结合不同场景
    比如:朋友圈删除 随之点赞评论一起删除 可以级联