
外键约束(FOREIGN KEY,缩写 FK)是用来实现数据库表的参照完整性的。它是指表中某个字段的值依赖于另一张表中某个字段的值,而被依赖的字段必须且有主键约束或者唯一约束。被依赖的表通常称之为父表或者主表,设置外键约束的表称为子表或从表。
CONSTRAINT [外键约束的名称] FOREIGN KEY (外键字段) REFERENCES [主表名称(主键字段)]ALTER TABLE [表名] ADD CONSTRAINT [外键约束的名称] FOREIGN KEY [外键字段] REFERENCES [主表名称(主键字段)]#创建一个关联到主表的从表CREATETABLEemp_part(emp_idINTPRIMARYKEYAUTO_INCREMENT,enameVARCHAR(20),ageINT,genderVARCHAR(10),dept_idINT,-- 添加外键约束CONSTRAINTemp_deptFOREIGNKEY(dept_id)REFERENCESdept(id));#插入一条非法数据INSERTINTOemp_partVALUES(1,'cindy',20,'female','4')ALTER TABLE [表名] DROP FOREIGN KEY [外键约束名称]#删除外键约束
ALTERTABLEemp_partDROPFOREIGNKEYemp_dept
#插入一条非法数据INSERTINTOemp_partVALUES(1,'cindy',20,'female','4')
SELECT*FROMemp_part
#向主表中插入一条数据INSERTINTOdeptVALUES(2,'运营部','张三','北京')#向从表中插入一条数据INSERTINTOemp_partVALUES(1,'cindy',20,'female','2')#删除主表中的数据DELETEFROMdeptWHEREid=2#创建员工信息表并添加级联删除的外键约束CREATETABLEemp_part(emp_idINTPRIMARYKEYAUTO_INCREMENT,enameVARCHAR(20),ageINT,genderVARCHAR(10),dept_idINT,-- 添加外键约束CONSTRAINTemp_deptFOREIGNKEY(dept_id)REFERENCESdept(id)-- 设置允许级联删除ONDELETECASCADE);#向员工信息表中添加一条数据INSERTINTOemp_partVALUES(1,'cindy',20,'female','2')#删除主表中部门id=2的部门DELETEFROMdeptWHEREid=2#查看从表中的数据是否同时被删除SELECT*FROMemp_partSQL 中的外键约束是一种参照完整性约束,它用于确保两个表之间的数据一致性,构建了一种父子关系。当在子表中插入或更新数据时,外键约束确保所提供的外键值必须在父表的相应主键或唯一键值范围内。如果父表中不存在相应的值,则操作将失败,从而确保了数据的完整性和一致性。
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。