创建外键可以通过navicat或者sqlyog等工具来完成,但是还是推荐使用语句完成。
创建语句:ALTER TABLE <表名> ADD CONSTRAINT 外键名 FOREIGN KEY(外键字段) REFERENCES 关联表名(关联字段)
举例:
表一:学生信息表 stu_info,主键为学生的学号stu_id, 还有一个字段就是班级号,class_id,这个班级号应该就是引用自班级表。所以我们需要建立学生和班级之间的外键关联。
表二:班级表 class,主键为 id。
ALTER TABLE <表名> ADD CONSTRAINT 外键名 FOREIGN KEY(外键字段) REFERENCES 关联表名(关联字段)
这里我们需要思考一个问题,这个表名应该填什么?是填学生信息表还是班级表呢?也就是说这个外键应该添加在哪个表呢?
这个问题其实很简单,我们是在学生信息表里面引用了班级表里面的班级id,a引用b那么外键就应该设置在a表中,记住这个就好办了。
外键名字可以随意设置,但是建议设置规则为(外键的命名为 fk_外键所在的表名_外键引用的表名 。因为外键所在的表为从表,所以上式可以写为 fk_ 从表名_主表名 。),所以我们取名为“fk_user_info_class”
外键字段设置的就是学生表中引用班级表中的那一列的列名,这里应该就是"class_id"。
关联字段设置的就是班级表中被引用的那一列的列名,一般都是主键,这里应该是“id”。
所以,外键语句应该是 ALTER TABLE <user_info> ADD CONSTRAINT fk_user_info_class FOREIGN KEY(class_id) REFERENCES 关联表名(id)
ok,小伙伴们可以自己去试一试。
网友评论