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

本文详细介绍了如何在Navicat中为MySQL数据库的两个表创建外键关联。首先创建名为'emp'的主表和'dept'的从表,确保表类型为InnoDB,字符集为utf8。接着设置外键,关联'emp'的'dept_id'字段到'dept'表的'dept_id'字段,选择CASCADE作为删除和更新时的操作,确保数据同步。注意添加外键需满足InnoDB引擎、字段类型一致及从表数据存在等条件。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

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

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值