Navicat如何设置外键和为空

简介: Navicat如何设置外键和为空

设置外键


创建外键约束的目的是保持数据一致性,完整性,以及实现一对一或一对多关系


打开Navicat

1.png


打开数据库选择表 ,然后右键点击设计表

image.png


进入表设计页面

65390ee8072c454a8f15e342a592b709.png


点击外键按钮进入

65390ee8072c454a8f15e342a592b709.pnga3ff2aa190484193801f180518c55fe7.png


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


刷新时:更新时候选择的动作(这里选择CASCADE

CASCADE ---就是当关联的表更新后, food中的food_id也随着更新。


以上字段也可以按照自己的需求填写,设置完成后保存即可。

某个表已经有记录了,添加外键失败,这时候只需要将两个要关联的表中的数据清空再从新添加外键关系即可

可能会出现的错误:

ERROR: 1822 — Failed to add the foreign key constraint. Missing index for constraint ‘XXXX’ in the referenced table ‘XXXX

MySQL报这个错时去检查外键设置!!!这个外键是不是另外一个表的主键

设置外键的时候需要注意以下几点:


(1)外键是用于两个表的数据之间建立连接,可以是一列或者多列,即一个表可以有一个或多个外键。

(2)这个表里面设置的外键必须是另外一个表的主键

(3)外键可以不是这个表的主键,但必须和另外一个表的主键相对应(字段的类型和值必须一样)。

(4)带有主键的那张表称为父表,含外键的是子表,必须先删除外键约束才能删除父表。

(5)外键要存在,父表和子表必须使用相同的存储引擎,而且禁止使用临时表,所以必须保证表的引擎是 InnoDB(默认的存储引擎),如果不是 InnoDB 存储引擎,那么外键可以创建成功,但没有约束作用;

(6)每张表中的外键名称不能重复;

(7)如果外键约束模式选择SET NULL ,那么字段必须允许为NULL,否则出现Cannot add foreign key constraint。

(8)外键列和参照列必须建立索引。如果外键列不存在索引的话,MYSQL将自动创建索引。如果参照列不存在索引的话,MySQL不会自动创建索引(FOREGIN KEY 关键字的列称为外键列 外键列所参照的列称为参照列)


设置为空

65390ee8072c454a8f15e342a592b709.pnga3ff2aa190484193801f180518c55fe7.png

答:

所以是是不打钩的,否是打钩的   不选就为空



相关文章
|
人工智能 自然语言处理 API
图片转音乐模型来了!Image to Music V2 :只需上传一张照片,自动转换成与图片内容匹配的音频!
图片转音乐模型来了!Image to Music V2 :只需上传一张照片,自动转换成与图片内容匹配的音频!
1671 1
|
Prometheus 监控 Kubernetes
阿里云容器服务GPU监控2.0基础篇2:监控NVLINK带宽
本系列相关文章:阿里云容器服务GPU监控2.0基础篇1:基本功能使用阿里云容器服务GPU监控2.0基础篇2:监控NVLINK带宽阿里云容器服务GPU监控2.0基础篇3:监控NVIDIA XID错误阿里云容器服务GPU监控2.0进阶篇1:剖析(Profiling)GPU使用情况必备知识阿里云容器服务GPU监控2.0进阶篇2:学会剖析(Profiling)GPU使用情况容器服务GPU监控2.0提供了监
2358 0
阿里云容器服务GPU监控2.0基础篇2:监控NVLINK带宽
|
2月前
|
人工智能 IDE 前端开发
04|Claude Code、Codex、Cursor、OpenCode 的 Harness 差异
本文深度解析2026年四大AI编程工具本质差异:Claude Code(终端工程Agent)、Codex(OpenAI生态本地Agent)、Cursor(IDE内嵌Agent Harness)、OpenCode(开源多模型可定制平台),强调选型关键在匹配真实工作流,而非单纯比模型。
1214 3
|
关系型数据库 MySQL 数据库
navicat 查看,设计并导出数据库 ER图
navicat 查看,设计并导出数据库 ER图
5343 5
|
安全 测试技术 API
详解软件需求中的外部接口需求
本文介绍了外部接口在软件系统中的作用及相关知识点,包括API、Web服务、数据集成、硬件接口等常见类型,同时涵盖身份验证、授权、数据格式、接口文档、错误处理等关键技术点,旨在帮助开发团队实现系统间的高效、安全、可靠通信与集成。
852 0
|
安全 前端开发 JavaScript
利用HTTP协议进行文件上传和下载的常见方法
【10月更文挑战第25天】可以利用HTTP协议方便地实现文件的上传和下载功能,满足不同应用场景下的需求。在实际应用中,还可以根据具体的业务需求和安全要求,对文件上传和下载的过程进行进一步的优化和安全处理。
|
算法 NoSQL 中间件
go语言后端开发学习(六) ——基于雪花算法生成用户ID
本文介绍了分布式ID生成中的Snowflake(雪花)算法。为解决用户ID安全性与唯一性问题,Snowflake算法生成的ID具备全局唯一性、递增性、高可用性和高性能性等特点。64位ID由符号位(固定为0)、41位时间戳、10位标识位(含数据中心与机器ID)及12位序列号组成。面对ID重复风险,可通过预分配、动态或统一分配标识位解决。Go语言实现示例展示了如何使用第三方包`sonyflake`生成ID,确保不同节点产生的ID始终唯一。
850 0
go语言后端开发学习(六) ——基于雪花算法生成用户ID