欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

Mysql中的外键约束

程序员文章站 2022-06-01 09:18:12
...

外键的定义

Mysql外键约束(FOREIGN KEY)是表的一个特殊字段,经常与主键约束一起使用。对于两个具有关联关系的表而言,相关联字段中主键所在的表就是主表(父表),外键所在的表就是从表(子表)

假设我们有2个表,分别是表A和表B,它们通过一个公共字段“id”发生关联关系,我们把这个关联关系叫做R。如果“id”在表A中是主键,那么,表A就是这个关系R中的主表。相应的,表B就是这个关系中的从表,表B中的“id”,就是表B用来引用表A中数据的,叫外键。所以,外键就是从表中用来引用主表中数据的那个公共字段

外键约束的作用

外键约束,可以帮我们确定从表中外键字段与主表中的主键字段之间的引用关系,还可以确保从表中数据所引用的主表数据不会被删除,确保两个表中数据的一致性

主表删除某条记录时,从表中与之对应的记录也必须有相应的改变。一个表可以有一个或多个外键,外键可以为空值,若不为空值,则每一个外键的值必须等于主表中主键的某个值

但是,外键约束是有成本的,需要消耗系统资源,可能不适合大并发的SQL操作。因此mysql允许你不使用系统自带的外键约束,在应用层面完成检查数据一致性的逻辑。这也是为什么我们即使没有设置外键,也能进行关联查询的原因

外键的创建与修改

-- 定义外键约束:
CREATE TABLE 从表名
(
字段 字段类型
....
CONSTRAINT 外键约束名称
FOREIGN KEY (字段名) REFERENCES 主表名 (字段名称)
);
ALTER TABLE 从表名 ADD CONSTRAINT 约束名 FOREIGN KEY 字段名 REFERENCES 主表名 (字段名);
相关标签: mysql mysql