Navicat在MySQL中添加外键详细过程

  1. 打开Navicat连接上数据库, 并建立新的数据库:“test”;

  2. 在数据库“test”中创建两个表“emp”(主表)和“dept”(从表)

    “emp”(主表—员工表)
    在这里插入图片描述
    在这里插入图片描述
    “dept”(从表—部门表)
    在这里插入图片描述
    在这里插入图片描述

  3. 将“emp”(主表)和“dept”(从表)中选项设置

     表类型:InnoDB,
     
     字符集:utf8 – UTF-8 Unicode(默认),
     
     整理: utf8_general_ci(默认),
     
     自动递增: 自己设置(主表emp与从表dept必须相同) 
    

在这里插入图片描述
在这里插入图片描述
4.设置外键
在这里插入图片描述
班主任id作为班级表中的外键

外键名(name):可以不填, 系统自动生成;

栏位名(Field Name): 就是设置‘dept_id’为外键;

参考数据库(Reference DadaBase): 外键(‘dept_id’)关联的数据库;

引用表(Reference Table): 关联的表, 这里是dept表;

外栏位名(Outside field name): 关联的字段(这里是“dept_id”, 可以与栏位名相同);

删除时:删除时候选择的动作(这里选择CASCADE);

刷新时:更新时候选择的动作(这里选择CASCADE)CASCADE ---就是当关联的表更新后, emp中的dept_id也随着更新。

CASCADE
在父表上update/delete记录时,同步update/delete掉子表的匹配记录

SET NULL
在父表上update/delete记录时,将子表上匹配记录的列设为null (要注意子表的外键列不能为not null)

NO ACTION
如果子表中有匹配的记录,则不允许对父表对应候选键进行update/delete操作

RESTRICT
同no action, 都是立即检查外键约束

SET NULL
父表有变更时,子表将外键列设置成一个默认的值 但Innodb不能识别

注意:

添加外键数据库引擎必须为InnoDB;

关联的字段数据类型必须一样;

从表中的关联字段数据,必须在主表中。

5.使用Navicat在MySQL中添加外键完成。

转载于:https://www.cnblogs.com/blovedr/p/9211283.html

Logo

更多推荐