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 级联操作类型;
-