Loading [MathJax]/jax/input/TeX/config.js
前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >mysql 设置外键约束(foreign key)

mysql 设置外键约束(foreign key)

作者头像
全栈程序员站长
发布于 2022-06-25 08:12:15
发布于 2022-06-25 08:12:15
5.7K00
代码可运行
举报
运行总次数:0
代码可运行

大家好,又见面了,我是你们的朋友全栈君。

建立外键约束可以采用列级约束语法和表级约束语法,如果仅仅对单独的一个数据列建立外键约束,则使用列级约束语法即可;如果需要对多个列组合创建外键约束,或者需要为外键约束指定名字则必须使用表级约束语法。

使用列级约束语法建立外键约束直接使用references关键字,references指定该列参照的哪个主表,以及参照主表的哪一列。如下SQL语句所示:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
create table teacher_table

(

 teacher_id int auto_increment,

 teacher_name varchar(255),

 primary key(teacher_id)

);

 

 

create table student_table

(

 student_id int auto_increment primary key,

 student_name varchar(255),

 java_teacher int references teacher_table(teacher_id)

);

虽然MySQL支持使用列级约束的语法来建立外键约束,但这种列级的约束语法建立的外键约束不会生效,MySQL提供这种列级约束语法仅仅是和标准SQL保持良好的兼容性。因此,如果需要MySQL中的外键约束生效,应使用表级约束语法。

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
   create table teacher_table1

(

 teacher_id int auto_increment,

 teacher_name varchar(255),

 primary key(teacher_id)

);

 

create table student_table1

(

 student_id int auto_increment primary key,

 student_name varchar(255),

 java_teacher int,

 foreign key(java_teacher) references teacher_table1(teacher_id)

 或者使用下面的语句建立外键约束,并指定外键约束名student_teacher_fk

 constraint student_teacher_fk foreign key(java_teacher) references teacher_table1(teacher_id)

);

如果使用表级约束语法,则可以需要使用foreign key来指定本表的外键列,并使用references来指定参照哪个主表,以及参照到主表的哪个列。使用表级约束语法可以使用外键的约束指定约束名,如果创建外键约束没有指定约束名,则MySQL会为该外键约束命名为table_name_ibfk_n,其中table_name是从表的表名,而n是从1开始的整数。

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
【MySQL】一文带你搞定 外键约束&其【更新/删除行为】(可cv代码&案例演示)
YY的秘密代码小屋
2024/04/02
2.4K0
【MySQL】一文带你搞定 外键约束&其【更新/删除行为】(可cv代码&案例演示)
MySQL常见约束条件「建议收藏」
约束条件:限制表中的数据,保证添加到数据表中的数据准确和可靠性!凡是不符合约束的数据,插入时就会失败! 约束条件在创建表时可以使用, 也可以修改表的时候添加约束条件
全栈程序员站长
2022/11/04
1.6K0
MySQL数据库基础:约束
如果已经手动指定了null的话,就按照手动指定的,用户指定的优先级高于默认的优先级
2的n次方
2024/10/15
1320
MySQL数据库基础:约束
【愚公系列】2022年01月 Mysql数据库-约束
数据库中的约束,顾名思义即是对插入数据库中的数据进行限定,这么做的目的是为了保证数据的有效性和完整性。这样就大幅度地提高了数据库中数据的质量,节省了数据库的空间和调用数据的时间。
愚公搬代码
2022/01/25
5700
MySQL约束
约束是一种限制,它通过对表的行或列的数据做出限制,来确保表的数据的完整性、唯一性。
阿年、嗯啊
2021/04/27
1.7K0
Mysql基础7-约束
  需求1:创建一个表id、name、age、address、stu_num五个字段。
Se7eN_HOU
2023/07/24
3860
Mysql基础7-约束
不是吧,阿Sir,MySQL约束你竟然还不懂!
符号规定:下面展示一些定义的时候,为简便理解,使用中文配合符号表述(会有具体举例,不用担心理解不了)
BWH_Steven
2020/06/22
5820
不是吧,阿Sir,MySQL约束你竟然还不懂!
SQL笔记(1)——MySQL创建数据库
其中,主键列指定了 PRIMARY KEY 约束,强制该列的值在表中唯一,并且使用 AUTO_INCREMENT 关键字,表示该列的值会自动递增生成。
MinChess
2023/04/22
3.2K0
SQL笔记(1)——MySQL创建数据库
三十四、外键约束
参照完整性要求关系中不允许引用不存在的实体。在 MySQL 中设置参照完整性的方式是使用 外键约束 。所谓外键就是用于在两个表中的数据之间建立和加强链接的一列或多列的组合,可控制可在外键表中存储的数据。例如,有学生表和分数表两个表,表内容如下。
喵叔
2021/06/29
1.9K0
数据库操作指南:掌握CRUD和高级查询技巧,轻松实现数据操作
这里推荐一篇实用的文章:《TCP 和 UDP 的区别:解析网络传输协议》,作者:【一杯茶Ja】。
Lion Long
2024/11/23
1570
数据库操作指南:掌握CRUD和高级查询技巧,轻松实现数据操作
【说站】mysql外键约束有什么要求
以上就是mysql外键约束的要求,希望对大家有所帮助。更多mysql学习指路:Mysql
很酷的站长
2022/11/24
2K0
【说站】mysql外键约束有什么要求
一篇文章带你彻底了解MySQL各种约束
MySQL约束 <1> 概念 是一种限制,它是对表的行和列的数据做出约束,确保表中数据的完整性和唯一性。 <2> 使用场景 创建表的时候,添加约束 <3> 分类 default: 默认约束, 域完整性 not null: 非空约束,域完整性 unique: 唯一约束,实体完整性 primary key: 主键约束,实体完整性 foreign key: 外键约束,参照完整性 check: 检查约束(MySQL不支持),域完整性 auto_increment: 自增长约束 unsigned: 无符号约束 zer
ruochen
2021/02/14
1K0
一篇文章带你彻底了解MySQL各种约束
【MySQL】学习外键约束处理员工数据
⚠️注意:上面两张表,在数据库层面,并未建立外键关联,所以无法保证数据的一致性和完整性。
ImAileen
2024/02/17
2780
【MySQL】学习外键约束处理员工数据
【重学 MySQL】六十六、外键约束的使用
在MySQL中,外键约束是一种重要的数据库约束,用于确保表中的数据完整性。它强制子表中的每个记录都引用主表中的一个现有的记录,从而维护数据的一致性和完整性。
用户11332765
2024/10/28
2370
【重学 MySQL】六十六、外键约束的使用
MySQL数据库基础练习系列35、教务管理系统
很多学生或者说是初学者在学习完成数据库的基础增删改查后就自认为在数据库这里就很熟悉了,但是不接触项目根本部知道需求,我这里准备了50个项目的基本需求来让大家来熟练各类项目的列信息,让大家更好的深入项目进行实战式的练习,可以让大家在后面面试的时候有更多更丰富的资历让大家可以与面试官侃侃而谈。
红目香薰
2024/06/16
1160
MySQL数据库基础练习系列35、教务管理系统
linux 之mysql——约束(constraint)详解
比如name字段中要让其用户名不重复,这就需要添加约束。或者必须注册的时候需要添加邮箱等
用户4877748
2020/07/21
2.5K0
第13章_约束
数据完整性(Data Integrity)是指数据的精确性(Accuracy)和可靠性(Reliability)。它是防止数据库中存在不符合语义规定的数据和防止因错误信息的输入输出造成无效操作或错误信息而提出的。
程序员Leo
2023/08/07
4710
第13章_约束
MySQL复习笔记(2)-约束
之前的查询都是横向查询,它们都是根据条件一行一行的进行判断,而使用聚合函数查询是纵向查询,它是对一列的值进行计算,然后返回一个结果值。另外聚合函数会忽略空值NULL。
框架师
2021/03/05
9260
mysql学习笔记(四)约束与索引
ER图:https://jingyan.baidu.com/article/d5a880eba77c3513f147ccdf.html
逆回十六夜
2020/02/08
2.1K0
MySQL数据库基础练习系列1、学生信息管理系统
很多学生或者说是初学者在学习完成数据库的基础增删改查后就自认为在数据库这里就很熟悉了,但是不接触项目根本部知道需求,我这里准备了50个项目的基本需求来让大家来熟练各类项目的列信息,让大家更好的深入项目进行实战式的练习,可以让大家在后面面试的时候有更多更丰富的资历让大家可以与面试官侃侃而谈。
红目香薰
2024/06/07
1360
相关推荐
【MySQL】一文带你搞定 外键约束&其【更新/删除行为】(可cv代码&案例演示)
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
本文部分代码块支持一键运行,欢迎体验
本文部分代码块支持一键运行,欢迎体验