首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >mysql 设置外键约束(foreign key)

mysql 设置外键约束(foreign key)

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

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

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

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

代码语言:javascript
代码运行次数:0
运行
复制
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
运行
复制
   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 删除。

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

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档