1. 外键是指引用另外一个表中的一列或多列数据,被引用的应该具有主键约束或者唯一性约束,外键用来加强两个数据表之间的关联<br />比如学生档案表跟成绩表,为了保证数据的完整性,建立外键,在是成绩表中添加外键约束,不然删除了档案,还有分数,<br />外键跟主键也是一样时索引的一种,mysql会自动为主键创建索引,外键需要手动,不过4.1版本之后添加外键会自动加索引

使用条件

必须时innodb表引擎,才支持
外键字段跟主键字段必须都是同一类型,长度,(无符号之类的,也要一样)

添加外键命令

alter table 表名 add constraint FK_ID foreign key(外键字段名) references 外表表名(主键字段名)
alter table type add constraint nid foreign key(n_id) references name(id) ;
image.png
添加完外键之后,就可以看到索引跟外键了
image.png
image.png
此时已经添加外键了,type表的n_id字段跟name的主键id关联

添加数据

如果需要添加的话,type表的字段n_id,对应的数值一定需要跟name 的id对应,必须存在值,否则添加失败(相当于添加学生分数,学生档案一定存在)

删除更新数据

删除更新的时候,会有限制,在添加外键索引的时候,就可以设置,删除更新时的处理方式,
image.png
CASCADE 关联
NO ACTION 限制
RESTRICT 限制
SET NULL 设置为空,删除的时候,外键关联变为null,设计表的时候就允许为null,不然会报错
如果限制了就会删除失败,关联是一起发生修改变动
应该先删除type表的数据,在删除name表的数据,这个是可以的

删除外键

alter table 表名 drop foreign key 外键名;