# 设置MySQL外键
在关系型数据库中,外键是一种用于建立表与表之间关联关系的约束。在MySQL中,我们可以通过设置外键来保证数据的一致性和完整性,避免数据的错误和冗余。本文将介绍如何在MySQL中设置外键,并给出具体的代码示例。
## 什么是外键?
外键是用来建立两个表之间关联关系的一种约束。通过外键,可以保证在一个表中的某个字段的值必须在另一个表中的主键字段中存在。这样可以确保在进行数            
                
                    
                        
                                                            
                                                                        
                                                                                        原创
                                                                                    
                            2024-04-08 04:08:05
                            
                                43阅读
                            
                                                                             
                 
                
                             
         
            
            
            
            # MySQL外键SET
在MySQL数据库中,外键是一种用于建立表与表之间关系的约束。通过外键,我们可以确保在引用表中的数据在父表中存在,并且可以维护数据的一致性。在MySQL中,我们可以使用`SET`关键字定义外键,用来指定在删除或更新父表时如何处理子表中的数据。
## SET关键字的作用
在定义外键时,我们可以通过`ON DELETE SET`和`ON UPDATE SET`来指定在父            
                
                    
                        
                                                            
                                                                        
                                                                                        原创
                                                                                    
                            2024-04-23 05:58:16
                            
                                39阅读
                            
                                                                             
                 
                
                             
         
            
            
            
              on delete set null,顾名思义,这种方式建立的外键约束,当被参照的数据被删除是,参照该数据的那些数据的对应值将会变为空值,下面我们通过试验来证明on delete set null作用:
  首先恢复刚才的那几条数据,然后更改约束:
  alter table emp
  add constraint fk_emp_dept foreign key(dept) refer            
                
                    
                        
                                                            
                                                                        
                                                                                        原创
                                                                                    
                            2012-10-15 10:55:45
                            
                                1722阅读
                            
                                                                             
                 
                
                             
         
            
            
            
            外键设置中的CASCADE、NO ACTION、RESTRICT、SET NULL外键的功能设置外键的作用很明显,就是讲两个表的数据产生关联,就比如个人信息表和部门表之间,部门表的部门id就可以作为一个外键存放于个人信息表中(特性什么的就不再赘述~),除此之外设定外键在父子表中的维护关系,可以达到一个类似于级联的操作,就是当父级表(主键作为外键的表)数据变化时,子表(拿着别的表的主键作为自己...            
                
                    
                        
                                                            
                                                                        
                                                                                        原创
                                                                                    
                            2021-05-20 23:41:30
                            
                                2783阅读
                            
                                                                             
                 
                
                             
         
            
            
            
            CASCADE:父表delete、update的时候,子表会delete、update掉关联记录;SET NULL:父表delete、update的时候,子表会将关联记录的外键字段所在列设为null,所以注意在设计子表时外键不能设为not null;RESTRICT:如果想要删除父表的记录时,而在子表中有关联该父表的记录,则不允许删除父表中的记录;NO ACTION:同 RESTRICT,也是首先先检查外键;Set default:父表有变更时,子表将外键列设置成一个默认的值 但..            
                
                    
                        
                                                            
                                                                        
                                                                                        原创
                                                                                    
                            2021-06-06 10:15:43
                            
                                518阅读
                            
                                                                             
                 
                
                             
         
            
            
            
            转: Mysql外键设置中的CASCADE、NO ACTION、RESTRICT、SET NULL 2017年06月11日 10:03:13 雅静8 阅读数:5491 2017年06月11日 10:03:13 雅静8 阅读数:5491 版权声明:本文为博主原创文章,未经博主允许不得转载。 https            
                
                    
                        
                                                            
                                                                        
                                                                                        转载
                                                                                    
                            2018-12-26 11:05:00
                            
                                144阅读
                            
                                                                                    
                                2评论
                            
                                                 
                 
                
                             
         
            
            
            
            CASCADE:父表delete、update的时候,子表会delete、update掉关联记录;SET NULL:父表delete、update的时候,子表会将关联记录的外键字段所在列设为null,所以注意在设计子表时外键不能设为not null;RESTRICT:如果想要删除父表的记录时,而在子表中有关联该父表的记录,            
                
                    
                        
                                                            
                                                                        
                                                                                        原创
                                                                                    
                            2022-03-25 15:18:52
                            
                                191阅读
                            
                                                                             
                 
                
                                
                     
                                    
                             
         
            
            
            
            业务需求:用户表r_user保存用户名等信息。现需要给每个用户设置工作基地,一个用户可以有多个工作基地,多个用户也可以有一个工作基地,即多对多关系。(外键,若有两个表A,B,C是A的主键,而B中也有C字段,则C就是表B的外键,外键约束主要用来维护两个表之间数据的一致性)设计方案:方案一:建立一张用户基地表,与r_user与用户基地表,保持一对多的关系,如图所示,r_user的主键id做为r_use            
                
                    
                        
                                                            
                                                                        
                                                                                        转载
                                                                                    
                            2023-08-23 21:43:57
                            
                                63阅读
                            
                                                                             
                 
                
                                
                     
                                    
                             
         
            
            
            
            CASCADE:父表delete、update的时候,子表会delete、update掉关联记录;SET NULL:父表delete、update的时候,子表会将关联记录的外键字段所在列设为null,所以注意在设计子表时外键不能设为not null;RESTRICT:如果想要删除父表的记录时,而在子表中有关联该父表的记录,则不允许删除父表中的记录;NO ACTION:同 RESTRICT,...            
                
                    
                        
                                                            
                                                                        
                                                                                        原创
                                                                                    
                            2021-08-26 10:24:24
                            
                                233阅读
                            
                                                                             
                 
                
                             
         
            
            
            
            # 实现 MySQL 设置外键 set references
## 简介
在 MySQL 中,外键是用来建立表之间的关联关系的重要机制。通过使用外键,可以确保数据的完整性和一致性。本文将介绍如何在 MySQL 中设置外键,并提供了详细的步骤和相关代码示例。
## 设置外键的步骤
下面是设置外键的一般步骤:
| 步骤 | 描述 |
| --- | --- |
| 1 | 创建主表和从表 |            
                
                    
                        
                                                            
                                                                        
                                                                                        原创
                                                                                    
                            2023-08-03 11:44:07
                            
                                115阅读
                            
                                                                             
                 
                
                             
         
            
            
            
            
                    假如某个电脑生产商,它的数据库中保存着整机和配件的产品信息。用来保存整机产品信息的表叫做 pc;用来保存配件供货信息的表叫做 parts。 
在 pc 表中有一个字段,用来描述这款电脑所使用的CPU型号; 
在 parts 表中相应有一个字段,描述的正是CPU的型号,我们可以把它想成是全部CPU的型号列表。 
很显然,这个厂家生产的电脑,其使用的 cpu             
                
                    
                        
                                                            
                                                                        
                                                                                        转载
                                                                                    
                            2023-08-25 07:06:43
                            
                                82阅读
                            
                                                                             
                 
                
                             
         
            
            
            
            外键约束比较多得两种情况: 1.父表更新时子表也更新,父表删除时如果子表有匹配的项,删除失败; 1 2.父表更新时子表也更新,父表删除时子表匹配的项也删除; 1 上一次遇到无法插入已经关联外键表的原因就是: **如果子表试图创建一个在父表中不存在的外键值,InnoDB会拒绝任何INSERT或UPDA            
                
                    
                        
                                                            
                                                                        
                                                                                        原创
                                                                                    
                            2021-07-20 16:06:53
                            
                                907阅读
                            
                                                                             
                 
                
                             
         
            
            
            
            . cascade方式在父表上update/delete记录时,同步update/delete掉子表的匹配记录    . set null方式在父表上update/delete记录时,将子表上匹配记录的列设为null要注意子表的外键列不能为not null     . No action方式如果子表中有匹配的记录,则不允许对父表对应候选键进行update/d            
                
                    
                        
                                                            
                                                                        
                                                                                        原创
                                                                                    
                            2021-06-10 18:05:31
                            
                                163阅读
                            
                                                                             
                 
                
                             
         
            
            
            
            . cascade方式在父表上update/delete记录时,同步update/delete掉子表的匹配记录 . set null方式在父表上update/delete            
                
                    
                        
                                                            
                                                                        
                                                                                        转载
                                                                                    
                            2024-08-15 10:34:50
                            
                                22阅读
                            
                                                                             
                 
                
                             
         
            
            
            
            MySQL有两种常用的引擎类型:MyISAM和InnoDB。目前只有InnoDB引擎类型支持外键约束。InnoDB中外键约束定义的语法如下: ALTER TABLE tbl_name ADD [CONSTRAINT [symbol]] FOREIGN KEY [index_name] (index_            
                
                    
                        
                                                            
                                                                        
                                                                                        转载
                                                                                    
                            2020-02-25 10:49:00
                            
                                135阅读
                            
                                                                                    
                                2评论
                            
                                                 
                 
                
                             
         
            
            
            
            # MySQL SET类型设置为外键
在MySQL数据库中,我们经常会遇到需要设置外键关联的情况。外键是用来确保数据完整性和一致性的重要机制。SET类型是MySQL中一种特殊的数据类型,它允许我们在一个列中存储多个值,每个值之间用逗号分隔。
在本文中,我们将介绍如何将一个SET类型的列设置为外键,以保证数据的一致性和正确性。
## SET类型的定义
首先,我们来看一下如何在MySQL中创建            
                
                    
                        
                                                            
                                                                        
                                                                                        原创
                                                                                    
                            2024-03-18 04:57:34
                            
                                26阅读
                            
                                                                             
                 
                
                             
         
            
            
            
            外键可以为NULL。只要引用的键不为PK,外键就可以为NULLTopFOREIGN   KEY   约束并不仅仅只可以与另一表的   PRIMARY   KEY   约束相链接,它还可以定义为引用另一表的   UNIQUE   约束。FOREIGN   KEY   约束不允许空值,但是,如果任何组合 &nbs            
                
                    
                        
                                                            
                                                                        
                                                                                        转载
                                                                                    
                            2023-10-09 10:35:43
                            
                                358阅读
                            
                                                                             
                 
                
                             
         
            
            
            
            《MYSQL数据库MySQL外键使用详解》要点:本文介绍了MYSQL数据库MySQL外键使用详解,希望对您有用。如果有疑问,可以联系我们。最近有开始做一个实验室管理系统,因为分了几个表进行存储・所以要维护表间的关联・・研究了一下MySQL的外键.MYSQL教程(1)只有InnoDB类型的表才可以使用外键,mysql默认是MyISAM,这种类型不支持外键约束MYSQL教程(2)外键的好处:可以使得两            
                
                    
                        
                                                            
                                                                        
                                                                                        转载
                                                                                    
                            2023-09-19 10:50:51
                            
                                130阅读
                            
                                                                             
                 
                
                             
         
            
            
            
            最近许多项目咨询,mysql进行级联删除的问题。在此做个系统的扫盲。一 什么是级联删除。    即依赖于外键关系,删除父表时,一并删除独立依赖于此表的子表。二 如何做到级联删除    其实非常简单,需要建立表的时候明确指定,外键依赖关系的属性为允许级联删除。     ON DELETE CASCAD            
                
                    
                        
                                                            
                                                                        
                                                                                        转载
                                                                                    
                            2023-06-01 13:02:58
                            
                                282阅读
                            
                                                                             
                 
                
                             
         
            
            
            
            文章目录前言一、插入新数据时报错外键约束?二、对于出错 SQL 语句的分析三、对于外码约束的分析四、如何处理外键约束?总结 前言  我们在使用 MySQL 数据库时,添加数据如果设计不合理很容易出现外码约束的情况,为什么会产生这样的问题?那我们该如何处理这一问题呢?依据又是什么?本篇文章带你进一步来深度剖析,并带着你的思路来设计解决方案。  说明:本次案例的案例情景是传统的数据库表:学生-课程数            
                
                    
                        
                                                            
                                                                        
                                                                                        转载
                                                                                    
                            2023-09-27 07:15:06
                            
                                187阅读
                            
                                                                             
                 
                
                                
                    