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 :只需上传一张照片,自动转换成与图片内容匹配的音频!
958 1
|
消息中间件 Kubernetes 数据安全/隐私保护
milvus本地集群部署(非k8s)
milvus本地集群部署(非k8s)
1055 0
|
存储 Android开发
Android Studio实现一个记账本项目
Android Studio实现一个记账本项目
1025 0
Android Studio实现一个记账本项目
|
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提供了监
1985 0
阿里云容器服务GPU监控2.0基础篇2:监控NVLINK带宽
|
监控 关系型数据库 PostgreSQL
两阶段提交(2PC, Two-Phase Commit)
【8月更文挑战第24天】
907 9
|
5月前
|
存储 自然语言处理 监控
民航机场大模型私有知识库搭建步骤:技术选型 + 实施路径全解析!
近年来,民航机场面临知识管理难题,大模型技术为构建高效、安全的企业知识库提供了新思路。本文介绍知识库发展历程、大模型应用挑战,并详述私有化部署策略与八大实施步骤,助力民航提升运营效率与服务质量。
|
11月前
|
存储 人工智能 安全
基于区块链的数字身份认证:重塑身份安全的新范式
基于区块链的数字身份认证:重塑身份安全的新范式
1265 16
|
关系型数据库 数据库 PostgreSQL
pg下delete数据后。除了使用VACUUM FULL TABLE 才能释放磁盘空间外的方法。
【8月更文挑战第12天】pg下delete数据后。除了使用VACUUM FULL TABLE 才能释放磁盘空间外的方法。
933 1
|
SQL 数据库 Python
sqlmap的安装及使用教程_sqlmap安装使用教程
sqlmap的安装及使用教程_sqlmap安装使用教程