主页 > 知识库 > Navicat添加外键详细操作步骤

Navicat添加外键详细操作步骤

热门标签:河北便宜电销机器人软件 南昌呼叫中心外呼系统哪家好 泗洪正规电话机器人找哪家 湖南保险智能外呼系统产品介绍 ai电话电话机器人 怎么申请400热线电话 怎么去开发一个电销机器人 简单的智能语音电销机器人 小程序智能电话机器人

前言

用Navicat为mysql数据库的两个表之间建立外键关系,出现“cannot add foreign key constraint”错误,操作了很久不知道怎么回事,发现竟然是。。。。

正文

想要建立class表与student表之间的外键连接,class为父表,student为子表

打开student的设计表。

如果c_id不允许为空则当,选择删除时-->>SET NULL就会出现Cannot add foreign key constraint的提示,这是因为删除置空有条件,必须满足字段允许为空(如果不满足,外键无法创建)当然,如果不允许为空,可以选择删除时-->>CASCADE也可以建立外键。

当勾选允许为空之后

再去保存就可以了。

还有必须注意,Engin必须为InnoDB。

总结一下:

外键条件

在我们使用外键的时候,应该遵循如下条件:

  • 外键要存在,首先必须保证表的引擎是 InnoDB(默认的存储引擎),如果不是 InnoDB 存储引擎,那么外键可以创建成功,但没有约束作用;
  • 外键字段的字段类型(列类型),必须与父表的主键类型完全一致;
  • 每张表中的外键名称不能重复;
  • 增加外键的字段,如果数据已经存在,那么要保证数据与父表中的主键对应。
  • 如果外键约束模式选择SET NULL ,那么字段必须允许为NULL,否则出现Cannot add foreign key constraint。

外键约束

所谓外键约束,就是指外键的作用。之前所讲的外键的作用都是默认的作用,实际上,可以通过对外键的需求,进行定制操作。

外键约束有三种模式,分别为:

  • district:严格模式(默认),父表不能删除或更新一个已经被子表数据引用的记录;
  • cascade:级联模式,父表的操作,对应子表关联的数据也跟着被删除;
  • set null:置空模式,父表的操作之后,子表对应的数据(外键字段)被置空。

 设计外键的界面,有七列:

  • 名(name):可以不填,保存时会自动生成。
  • 栏位(FieldName):要设置的外键,如:student 里的c_id
  • 参考数据库(Reference DataBase):外键关联的数据库
  • 被参考表(Reference Table):关联的表,这里是class表
  • 参考栏位(Forgin filed Names):关联的字段,class里的id
  • 删除时(ondelete):删除时候的动作,当时我选择的是SETNULL
  • 更新时(onupdate):更新时候的动作,我选择的是CASCADE

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

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

到此这篇关于Navicat添加外键详细操作步骤的文章就介绍到这了,更多相关Navicat添加外键内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

您可能感兴趣的文章:
  • navicat无法远程连接mysql的解决方法
  • 使用navicat 8实现创建数据库和导入数据 管理用户与权限[图文方法]
  • Navicat查询结果不能修改的原因及解决方法
  • navicat连接mysql出现2059错误的解决方法
  • MySQL数据库安装和Navicat for MySQL配合使用教程

标签:威海 江苏 泸州 柳州 荆门 淮安 那曲 景德镇

巨人网络通讯声明:本文标题《Navicat添加外键详细操作步骤》,本文关键词  Navicat,添加,外键,详细,操作步骤,;如发现本文内容存在版权问题,烦请提供相关信息告之我们,我们将及时沟通与处理。本站内容系统采集于网络,涉及言论、版权与本站无关。
  • 相关文章
  • 下面列出与本文章《Navicat添加外键详细操作步骤》相关的同类信息!
  • 本页收集关于Navicat添加外键详细操作步骤的相关信息资讯供网民参考!
  • 推荐文章