MySQL中如何设置外键

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

一、环境

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。

  • 44
    点赞
  • 150
    收藏
    觉得还不错? 一键收藏
  • 5
    评论
### 回答1: MySQL Workbench 设置外键的方法如下: 1. 打开 MySQL Workbench 并连接到要操作的数据库。 2. 在数据库设计视图,双击要设置外键的表格。 3. 在表格,右键单击要设置外键的列并选择“Edit Column”。 4. 在“Foreign Key”选项卡,选择“Foreign Key Relationships”。 5. 点击“+”号按钮来新建一个外键关系。 6. 选择要关联的表和列,并设置其它选项(如 ON UPDATE 和 ON DELETE)。 7. 点击“Apply”按钮来应用更改。 8. 点击“Forward Engineer”按钮来生成 SQL 语句并在数据库执行它们。 ### 回答2: MySQL Workbench是一款强大的数据库管理工具,可以用来设置和管理外键。为了设置外键,我们需要进行如下步骤: 1. 打开MySQL Workbench并连接到您的数据库。 2. 在左侧菜单栏,查找并选择“Schema”选项卡,找到您想要设置外键的表。 3. 单击表格,然后右键单击并选择“Alter Table”。 4. 在新的“Alter Table”窗口,选择“Foreign Keys”选项卡。在这里,您可以定义外键约束并将其添加到表格。 5. 单击“Add foreign key”按钮以添加一个新的外键约束。 6. 在弹出的“Edit Foreign Key”窗口,输入外键的名称和所属的列。如果您的表格有多个列,您可以单击“Add column”按钮并添加每个列。 7. 在“Reference Table”下拉菜单,选择引用表。如果您的表格位于不同的模式,则需要选择正确的模式。 8. 输入引用列的名称,这是您希望该外键引用的另一个表格的列名称。 9. 在下方的“Table mapping”对话框,选择源表格和目标表格的相应列。 10. 点击“Apply”并保存您的更改。 现在,您已经成功地在您的数据库表格之间创建了外键约束。记住,外键约束可以帮助有效地保护您的数据完整性,同时确保在执行任何修改时都会引发警告或错误。 ### 回答3: MySQL Workbench是一款功能强大的数据库管理工具,十分适合用于创建和管理数据库。在MySQL Workbench设置外键可以帮助我们优化数据库的性能,确保数据库的完整性和正常运行。下面,我将详细介绍如何在MySQL Workbench设置外键。 一、打开MySQL Workbench,连接到数据库服务器。 二、右键单击要创建外键的表,选择“ALTER TABLE”。 三、选择“Foreign Key”选项卡,并选择一个需要添加外键的列,添加引用列。 四、在“Foreign Key”选项卡,填写“Foreign Key Name”,“Referenced Table”,“Referenced Column”等等相关信息,然后点击“Add index”。 五、在“Foreign Key”选项卡设置“On Update”和“On Delete”选项。 1.如果在更新主表主键时,需要在子表外键上执行相同的操作,则选择“On Update CASCADE”。 2.如果在更新主表主键时,子表外键上的值不发生变化,则选择“On Update RESTRICT”。 3.如果在更新主表主键时,子表外键上的值设置为NULL,则选择“On Update SET NULL”。 4.如果在更新主表主键时,子表外键上的值设置为默认值,则选择“On Update SET DEFAULT”。 以上是设置“On Update”选项的情况,”On Delete”同理。 六、在“Foreign Keys”选项卡,点击“Apply”按钮,将外键的更改应用到数据库。 七、重新连接到数据库服务器,然后查看新外键是否已成功设置。 以上就是在MySQL Workbench设置外键的步骤,我们可以根据需要设置不同的参数来满足不同的需求。设置和使用外键可以保证数据库的完整性和稳定性,避免数据的丢失和损坏,提高数据库的性能和效率,是数据库设计和管理的基本功。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 5
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值