MySQL为表添加外键约束

为表添加外键约束的语法
Alter table 表名 add constraint FK_ID foreign key(外键字段名) REFERENCES 外表表名(主键字段名);

为表student添加外键约束

这里写图片描述

执行成功后,使用DESC来查看学生表和班级表
可以看出,grade表中的id是主键,student表中的gid是外键

使用show create table,查看表的详细结构

这里写图片描述

可以看出,gid为student表的外键,并且,gid依赖于grade表中的id主键。

为表添加外键约束时,需要注意
1、建立外键的表,必须为InnoDB型,不能使临时表,因为,在MySQL中只有InnoDB类型的表,才支持外键。
2、定义外键名时,不能加引号,比如constraint’FK_ID’或constraint”FK_ID”都是错误的

添加外键约束的参数说明
建立外键,是为了保证数据的完整和统一性,如果,主表中的数据被删除或修改,那么,从表中对应的数据也应该被删除,否则,数据库会存在很多无意义的垃圾数据。

MySQL可以在建立外键时,添加ON DELETE或ON UPDATE子句,来告诉数据库,怎样避免垃圾数据的产生

语法格式
alter table 表名 add constraint FK_ID foreign key(外键字段名) REFERENCES 外表表名(主键字段名);

参数说明

CASCADE——删除包含与已删除键值,有参照关系的所有记录
SET NULL——修改包含与已删除键值,有参照关系的所有记录,使用NULL值替换,不能用于已标记为NOT NULL的字段
NO ACTION——不进行任何操作
RESTRICT——拒绝主表删除或修改外键关联词,在不定义ON DELETE和ON UPDATE子句时,这是默认设置,也是最安全的的设置

  • 11
    点赞
  • 44
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值