下面我将以举例的方式说明,作者能力有限,欢迎指正和补充。也欢迎和我交流探讨~

一、环境

Windows操作系统,MySQL 5.7

二、使用工具

Navicat

三、前提知识

1.什么是主键

Primary key,唯一标识一个实体,取值非空唯一。比如,一个人的身份证号。

2.什么是外键

Foreign key, 本关系表中的属性的属性值需要参照另外一个表中主键的属性值而存在,可为空也可不为空。

四、实例

目前有一个名为shopping的数据库,里面有如下几张表:
category:种类表
goods :商品表
images: 图片表
trolley: 购物车
users:用户表
users_address:收货地址

1.首先理清这几张表的联系

补充说明:
1. 绿色框为各表主键
2. 红色箭头表示每两张表之间的主键与外键相对应(从本表外键指向其他表的主键)。
**3.**我只给出了部分主要值。
比如 trolley 表中的 users_id 指向 users 表中的users_id 。

2. 设置外键

用户表收货地址表为例, 这两个表中,外键为收货地址表中的 users_id, 所以在收货地址表建立外键。

2.1 收货地址表 users_address 单击,右键 —>设计表,用户表 users 以同样方法打开。

2.2 检查以下要素

(该部分划重点!!!大部分情况下添加外键失败是某个条件没满足导致的~)
1. users_id 在users 表中是否设为主键,users_address 中是否有users_id 这一项(即 是否两表中的项相互对应)?
2. 两表中的 users_id 的类型是否设置成一样的?
3. 两表中的 users_id 的长度是否设置成一样的?
4. 两表中的 users_id 是否设置成无符号?

2.3 如果检查完无误,记得先保存,然后刷新一下(表 右键 —>刷新)。建议:刷新后先关掉表再重新打开表。

2.4 users_address 表点击 外键,添加外键(这时参考模式会自动变成数据库名),字段选择之前确立好的外键 users_id, 然后确定。参考表选 主键为 users_id 的表,即 users 表。参考字段即主键users_id 。“删除时,更新时” 这两项一般不用管,然后点击保存。


2.5 设置完后点击保存 ,出现如下样式就是建立成功(没报错就是就建成功了)。

2.6 如果报错,参见2.2。

MySQL中如何设置外键相关推荐

  1. MySQL中如何定义外键[转]

    MySQL中如何定义外键 假如某个电脑生产商,它的数据库中保存着整机和配件的产品信息.用来保存整机产品信息的表叫做pc:用来保存配件供货信息的表叫做parts. 在pc表中有一个字段,用来描述这款电脑 ...

  2. mysql是否需要设置外键_数据库到底需不需要设置外键?

    在大型系统中(性能要求不高,安全要求高),最好使用外键(外键可以增强数据库数据的完整性和一致性) 在大型系统中(性能要求高,安全自己控制),不用外键(有外键约束的话,插入字段会进行检查,影响效率) 小 ...

  3. 在mysql中如何添加外键约束_如何在MySQL中设置外键约束

    (1) 外键的使用: 外键的作用,主要有两个: 一个是让数据库自己通过外键来保证数据的完整性和一致性 一个就是能够增加ER图的可读性 有些人认为外键的建立会给开发时操作数据库带来很大的麻烦.因为数据库 ...

  4. 数据库mysql表怎么设置外键_如何设置数据库中的外键

    展开全部 创建数据库时就是有主键的创建了主键,但是表之间的关系没有联系,要建数据库关系图只e69da5e887aa62616964757a686964616f31333365653739有主键没有外键 ...

  5. SQL server中如何设置外键

    以前创建数据库时就是有主键的创建了主键,但是表之间的关系没有联系,要建数据库关系图只有主键没有外键时不行的. 建外键的前提是此外键必须是另外一个表的主键.建外键的步骤: 第一步打开要建外键表的设计器, ...

  6. mysql中怎样插入外键_MySQL 添加外键

    MySQL 添加外键 MySQL 添加外键 DROP TABLE IF EXISTS `nation`; CREATE TABLE `nation`( `pii_Nation` smallint(2) ...

  7. mysql中什么叫外键_数据库中外键是什么?

    什么是外键? 外键 ( foreign key ) 是用于建立和加强两个表数据之间的链接的一列或多列.通过将保存表中主键值的一列或多列添加到另一个表中,可创建两个表之间的链接.这个列就成为第二个表的外 ...

  8. mysql中如何设置主键一直从0开始_怎么让mysql的id从0开始

    满意答案 有时候我们在测试网站的时候,删除测试数据导致id不是从0开始,那如果想id是从0开始怎么办呢? mysql默认自增ID是从1开始了,但当我们如果有插入表或使用delete删除id之后ID就会 ...

  9. php任何读取外键数据,在表中设置外键实现的是哪一类数据完整性

    在表中设置外键实现的是参照完整性. 参照的完整性要求关系中不允许引用不存在的实体.与实体完整性是关系模型必须满足的完整性约束条件,目的是保证数据的一致性.参照完整性又称引用完整性.(推荐学习:MySQ ...

最新文章

  1. Android之——短信的备份与还原
  2. 企业应用开发平台-GAP平台
  3. jquery-easyui环境的搭建及测试
  4. 清除Docker中所有为<none>的镜像(虚悬镜像)
  5. 哈希表(hash table)及其应用举例
  6. python char 相等_用 Python 实现 Excel文本函数
  7. 数据结构--栈-C语言实现迷宫求解
  8. 阿里云效maven私服
  9. 如何制作语音聊天程序源码,制作语音社交交友APP
  10. WS小世界网络模型构造算法
  11. 信息学奥赛一本通 1357:车厢调度(train)
  12. 数据挖掘是什么,数据挖掘的学习路线是什么?
  13. 在线客服机器人交互功能开发总结
  14. 开源mysql执行平台_MySQL自动化审核平台部署说明
  15. 海康sdkC++二次开发之回放下载
  16. 关于内存类型 UDIMM、RDIMM、LRDIMM 的学习结论(转)
  17. Mac OS X下的动态链接库
  18. 联想r7000p双系统ubuntu20.04触摸板失灵
  19. 医疗行业大数据应用的三个案例
  20. 运行Moblin Live映像 - for Mobin v2.1

热门文章

  1. 天梯赛(cccc)总结(写于4.1号)
  2. 2013最新申请百度贴吧吧主的方法和规则
  3. Tomcat的安装和启动
  4. SpringBoot-事务应用场景和隔离级别与传播行为
  5. 计算机本地连接没有有效ip配置,本地连接没有有效的ip配置?教您怎么解决
  6. Excel中工作表间的关联链接方法
  7. Git实用教程 4.0:回到过去
  8. 益交易德勤 区块链在全球公司的战略中 根深蒂固
  9. 二.MUI框架 开始体验MUI
  10. string类型 的 push_back()