前端之家收集整理的这篇文章主要介绍了
MySQL为表添加外键约束,
前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
@H_
403_0@为表
添加外键约束的语法@H_
403_0@Alter table 表名 add constraint FK_ID foreign key(外键字段名) REFERENCES 外表表名(主键字段名);@H_
403_0@为表student
添加外键约束@H_
403_0@

@H_
403_0@执行成功后,使用DESC来查看学生表和班级表@H_
403_0@可以看出,grade表中的id是主键,student表中的gid是外键@H_
403_0@使用show create table,查看表的详细结构@H_
403_0@

@H_
403_0@可以看出,gid为student表的外键,并且,gid依赖于grade表中的id主键。@H_
403_0@为表
添加外键约束时,需要注意@H_
403_0@1、建立外键的表,必须为InnoDB型,不能使临时表,因为,在
MysqL中只有InnoDB类型的表,才
支持外键。@H_
403_0@2、定义外键名时,不能加引号,比如constraint’FK_ID’或constraint”FK_ID”都是
错误的@H_
403_0@
添加外键约束的参数说明@H_
403_0@建立外键,是为了保证数据的完整和统一性,如果,主表中的数据被
删除或
修改,那么,从表中对应的数据也应该被
删除,否则,
数据库会存在很多无意义的
垃圾数据。@H_
403_0@
MysqL可以在建立外键时,
添加ON DELETE或ON UPDATE子句,来告诉
数据库,怎样避免
垃圾数据的产生@H_
403_0@语法格式@H_
403_0@alter table 表名 add constraint FK_ID foreign key(外键字段名) REFERENCES 外表表名(主键字段名);
参数说明
@H_
403_0@CASCADE——
删除包含与已
删除键值,有参照关系的所有记录@H_
403_0@SET NULL——
修改包含与已
删除键值,有参照关系的所有记录,使用NULL值替换,不能用于已
标记为NOT NULL的字段@H_
403_0@NO ACTION——不进行任何操作@H_
403_0@RESTRICT——拒绝主表
删除或
修改外键关联词,在不定义ON DELETE和ON UPDATE子句时,这是默认设置,也是最安全的的设置