MySQL数据库中外键的使用

1.认识外键;

  • 在存储关系的表中添加字段,为该字段创建外键来引用另一个表的主键,从而建立关系
  • 通过外键约束进行数据的有效性验证,当添加或修改的数据不是引用另一个表的主键时,则报错

2.外键约束如何创建?

  • 方式1:创建表时可以直接创建约束

    create table 表名(
    
    字段 类型...,
    
    ...
    
    foreign key(字段) references 主表名(id),
    
    ...
    
    );
  • 方式2:添加外键约束

    alter table 表名 add constraint 约束名 foreign key(字段名) references 主表名(id);其中约束名可以任意起

     

3.如何删除外键约束?

  • 第一步:先查找出约束名

    show create table 表名;
  • 第二步:根据约束名进行删除

    alter table 表名 drop foreign key 约束名;

     

4.外键的级联操作

  • 级联操作的类型包括:

    • restrict(限制):默认值,抛异常
    • cascade(级联):如果主表的记录删掉,则从表中相关联的记录都将被删除
    • set null:将外键设置为空
    • no action:什么都不做
  • 当删除某个表时,如果这个表的id值作为外键被另一个表进行了引用,则会抛出异常,解决方式有以下两种:

    • 方式一:使用逻辑删除(推荐)

    • 方式二:创建表时指定级联操作
      alter table 表名 add constraint 约束名 foreign key(字段名) references 主表名(id) on delete 级联操作类型;

       

 

posted @ 2020-12-28 22:58  eliwang  阅读(476)  评论(0编辑  收藏  举报