mysql 设置外键约束(foreign key)

mysql 设置外键约束(foreign key)建立外键约束可以采用列级约束语法和表级约束语法,如果仅仅对单独的一个数据列建立外键约束,则使用列级约束语法即可;如果需要对多个列组合创建外键约束,或者需要为外键约束指定名字则必须使用表级约束语法。      使用列级约束语法建立外键约束直接使用references关键字,references指定该列参照的哪个主表,以及参照主表的哪一列。如下SQL语句所示:createtablet

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

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

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

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中的外键约束生效,应使用表级约束语法。

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开始的整数。
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/151172.html原文链接:https://javaforall.net

(0)
上一篇 2022年6月22日 下午1:36
下一篇 2022年6月22日 下午1:36


相关推荐

  • 「普通人VS程序员」电脑还可以这样关机,神操作 建议阅读

    「普通人VS程序员」电脑还可以这样关机,神操作 建议阅读导语 哈喽 大家好 我是梦雅 无论家用电脑还是公司的电脑 定时开关机都是一个非常实用的功能 只是一般都不太受关注 定时关机不仅能延长电脑的使用寿命 还能节约超多的电费呢 哈哈哈哈 嗨 这不 周天休假一天 但是公司的电脑大部分的小伙伴儿就开了一天 有时候放长假的时候电脑一开就是几天 这不 隔壁的小姐姐已经被领导发现了 最后的最后这个事情就落到我手里了 开发一个能定时关机的源码项目供大家使用 并互相提醒每个人一定要下班关机 定时开关机是个非常简单又实用的功能 跟着本文用不了 10 分钟你就

    2026年3月18日
    2
  • 经典算法:并查集(DSU)结构简介

    经典算法:并查集(DSU)结构简介Python 笔记 并查集 DSU 结构简介 1 并查集是什么 2 并查集原理 3 并查集代码实现 1 一般代码实现 2 优化的 DSU 结构 1 调整树形结构 2 每次查找后更新节点信息 4 Leetcode 例题分析 1 Leetcode547 FriendCircle Leetcode721 AccountsMerg Leetcode128 LongestConse Leetcode1579 Rem

    2026年3月18日
    2
  • linux phpstorm激活码2021【在线注册码/序列号/破解码】[通俗易懂]

    linux phpstorm激活码2021【在线注册码/序列号/破解码】,https://javaforall.net/100143.html。详细ieda激活码不妨到全栈程序员必看教程网一起来了解一下吧!

    2022年3月18日
    72
  • 教程上新丨ACL机器翻译大赛30个语种摘冠,腾讯Hunyuan-MT-7B支持33种语言翻译

    教程上新丨ACL机器翻译大赛30个语种摘冠,腾讯Hunyuan-MT-7B支持33种语言翻译

    2026年3月12日
    2
  • 卸载Oracle 12c

    卸载Oracle 12c完全卸载 Oracle12c 前言 1 停止服务 Oracle 服务 2 卸载 Oracle 软件合理的创建标题 有助于目录的生成如何改变文本的样式插入链接与图片如何插入一段漂亮的代码片生成一个适合你的列表创建一个表格设定内容居中 居左 居右 SmartyPants 创建一个自定义列表如何创建一个注脚注释也是必不可少的 KaTeX 数学公式新的甘特图功能 丰富你的文章 UML 图表 FLowchart 流程图导出与导入导出导入前言你好 卸载 Oracle 和卸载普通软件不一样 本文主要简述如何完全卸载 Oracle12c 主要分

    2026年3月26日
    2
  • redis 乐观锁_用了乐观锁还需要事物吗

    redis 乐观锁_用了乐观锁还需要事物吗文章目录GeospatialHyperloglogBitmapsRedis事务悲观锁和乐观锁JedisSpringboot继承RedisGeospatial存储地理位置的数据结构应用场景朋友的定位,附近的人,打车距离计算Geospatial底层使用的是Zset127.0.0.1:6379> geoadd city 116.23 40.22 beijing 添加一个数据127.0.0.1:6379> geoadd city 121.47 31.23 shanghai 118.77

    2022年8月8日
    5

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号