广告
返回顶部
首页 > 资讯 > 数据库 >mysql中怎么添加外键
  • 317
分享到

mysql中怎么添加外键

2024-04-02 19:04:59 317人浏览 泡泡鱼
摘要

本篇文章为大家展示了Mysql中怎么添加外键,内容简明扼要并且容易理解,绝对能使你眼前一亮,通过这篇文章的详细介绍希望你能有所收获。mysql添加外键 RESTRICT : 只要本表格里面有指向主

本篇文章为大家展示了Mysql中怎么添加外键,内容简明扼要并且容易理解,绝对能使你眼前一亮,通过这篇文章的详细介绍希望你能有所收获。

mysql添加外键
 
RESTRICT : 只要本表格里面有指向主表的数据, 在主表里面就无法删除相关记录。
 
一般来说,就选restrict最安全,当然也根据具体的业务而言了.cascade很cool,但是数据哗的一下就没了.
 
CASCADE : 如果在foreign key 所指向的那个表里面删除一条记录,那么在此表里面的跟那个key一样的所有记录都会一同删掉。
 
为book表添加外键:
 
明确指定外键的名称:alter table book add constraint FK_BOOK foreign key(pubid) references pub_com(id) on delete restrict on update restrict;
 
不指定外键的名称,mysql会自动为你创建一个外键名称:alter table book add foreign key(pubid) references pub_com(id) on delete restrict on update restrict;
 
使用:show create table book;命令可查看
 
使用:desc book;可查看表结构
 
##########
 
说明,以上文章是参考网络资源的。但是,我认为这篇文章把和外键约束有关的东西基本交代清楚了。
 
只是有个别的地方不够完善。
 
如于到下面的一种情况。
 
-- 限制导出的表
-- 
-- 
-- 限制表 `room_staus`
-- 
ALTER TABLE `room_staus` ADD CONSTRAINT `fk_rooms_roomtype` FOREIGN KEY ( `hotel_id` , `room_id` ) REFERENCES `room_type` ( `hotel_id` , `room_id` ) ON DELETE CASCADE ON UPDATE CASCADE ;
 
alter table child add constraint foreign key(id)
 references parent(id);
 
定义数据表
 
假如某个电脑生产商,它的中保存着整机和配件的产品信息。用来保存整机产品信息的表叫做 Pc;用来保存配件供货信息的表叫做Parts。
 
在Pc表中有一个字段,用来描述这款电脑所使用的CPU型号;
 
在Parts 表中相应有一个字段,描述的正是CPU的型号,我们可以把它想成是全部CPU的型号列表。
 
很显然,这个厂家生产的电脑,其使用的CPU一定是供货信息表(parts)中存在的型号。这时,两个表中就存在一种约束关系(constraint)——Pc表中的CPU型号受到Parts 表中型号的约束。
 
首先我们来创建 parts 表:
 
CREATE TABLE parts (
    ... 字段定义 ...,
    model VARCHAR(20) NOT NULL,
    ... 字段定义 ...
);
 
接下来是Pc表:
 
CREATE TABLE pc (
    ... 字段定义 ...,
    cpumodel VARCHAR(20) NOT NULL,
    ... 字段定义 ...
};
 
设置索引
 
若要设置外键,在参照表(referencing table,即Pc表) 和被参照表 (referenced table,即parts表) 中,相对应的两个字段必须都设置索引(index)。
 
对Parts表:
 
ALTER TABLE parts ADD INDEX idx_model (model);
 
这句话的意思是,为 parts 表增加一个索引,索引建立在 model 字段上,给这个索引起个名字叫idx_model。
 
对Pc表也类似:
 
ALTER TABLE pc ADD INDEX idx_cpumodel (cpumodel);
 
事实上这两个索引可以在创建表的时候就设置。这里只是为了突出其必要性。
 
定义外键
 
下面为两张表之间建立前面所述的那种“约束”。因为pc的CPU型号必须参照parts表中的相应型号,所以我们将Pc表的cpumodel字段设置为“外键”(FOREIGN KEY),即这个键的参照值来自于其他表。
 
ALTER TABLE pc ADD CONSTRAINT fk_cpu_model 
FOREIGN KEY (cpumodel) 
REFERENCES parts(model);
 
第一行是说要为Pc表设置外键,给这个外键起一个名字叫做fk_cpu_model;第二行是说将本表的cpumodel字段设置为外键;第三行是说这个外键受到的约束来自于Parts表的model字段。
 
这样,我们的外键就可以了。如果我们试着CREATE一台Pc,它所使用的CPU的型号是Parts表中不存在的,那么MySQL会禁止这台PC被CREATE出来。
 
级联操作
 
考虑以下这种情况:
 
技术人员发现,一个月之前输入到 parts 表中的某个系列的 cpu (可能有很多款)的型号全都输错了一个字母,现在需要改正。我们希望的是,当 parts 表中那些 Referenced Column 有所变化时,相应表中的 Referencing Column 也能自动更正。
 
可以在定义外键的时候,在最后加入这样的关键字:
 
ON UPDATE CASCADE; 即在主表更新时,子表(们)产生连更新动作,似乎有些人喜欢把这个叫“级联”操作。:)
 
如果把这语句完整的写出来,就是:
 
ALTER TABLE pc ADD CONSTRAINT fk_cpu_model 
FOREIGN KEY (cpumodel) 
REFERENCES parts(model)
ON UPDATE CASCADE;
 
除了 CASCADE 外,还有 RESTRICT(禁止主表变更)、SET NULL(子表相应字段设置为空)等操作。

上述内容就是mysql中怎么添加外键,你们学到知识或技能了吗?如果还想学到更多技能或者丰富自己的知识储备,欢迎关注编程网数据库频道。

您可能感兴趣的文档:

--结束END--

本文标题: mysql中怎么添加外键

本文链接: https://www.lsjlt.com/news/58275.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • mysql中怎么添加外键
    本篇文章为大家展示了mysql中怎么添加外键,内容简明扼要并且容易理解,绝对能使你眼前一亮,通过这篇文章的详细介绍希望你能有所收获。mysql添加外键 RESTRICT : 只要本表格里面有指向主...
    99+
    2022-10-18
  • Navicatfor Mysql中怎么添加外键
    本篇内容主要讲解“Navicatfor Mysql中怎么添加外键”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“Navicatfor Mysql中怎么添加外键”吧...
    99+
    2022-10-18
  • MySQL怎么添加外键约束
    MySQL中添加外键约束的方法如下所示:1. 创建表时添加外键约束:```sqlCREATE TABLE 表名 (列名 数据类型,....
    99+
    2023-10-12
    MySQL
  • mysql添加外键失败怎么解决
    如果MySQL添加外键失败,可以尝试以下解决方法: 确保所引用的表和列存在:在创建外键时,被引用的表和列必须存在。请确保在创建外...
    99+
    2023-10-24
    mysql
  • mysql怎么添加一个表的外键
    在MySQL中,可以通过以下方式添加一个表的外键:1. 创建表时添加外键约束:在创建表时,使用FOREIGN KEY关键字来指定外键...
    99+
    2023-08-30
    mysql
  • windows中navicat怎么添加外键
    这篇文章主要介绍“windows中navicat怎么添加外键”,在日常操作中,相信很多人在windows中navicat怎么添加外键问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解...
    99+
    2022-12-03
    windows navicat
  • Mysql添加外键的方式
    Mysql添加外键的几种方式 注意:添加外键是给从表添加(即子表) 父表是主表 方法一: 创建表之前: FOREIGN KEY (子表id) REFERENCES 关联表名(外主表id) 例如 create table ...
    99+
    2023-08-18
    mysql 数据库
  • MySQL添加外键约束语句怎么写
    要向MySQL表中添加外键约束,可以使用ALTER TABLE语句。语法如下:ALTER TABLE 表名ADD CONSTRAIN...
    99+
    2023-10-23
    MySQL
  • SQL怎么为表中添加外键
    在SQL中,可以使用ALTER TABLE语句来为表中添加外键。具体步骤如下:1. 确定需要添加外键的表和字段。假设有两个表,分别是...
    99+
    2023-09-27
    SQL
  • mysql添加外键约束失败怎么解决
    当MySQL添加外键约束失败时,通常有以下几种解决方法:1. 确保外键约束的列类型和长度与参考表的主键或唯一键的列类型和长度相同。例...
    99+
    2023-10-20
    mysql
  • mysql不能添加外键约束怎么解决
    MySQL是可以添加外键约束的,但是在某些情况下可能会出现无法添加外键约束的情况,可能是由于以下几个原因导致的:1. 数据类型不匹配...
    99+
    2023-10-23
    mysql
  • mysql为什么会添加外键错误
    mysql为什么会添加外键错误?这个问题可能是我们日常学习或工作经常见到的。希望通过这个问题能让你收获颇深。下面是小编给大家带来的参考内容,让我们一起来看看吧!mysql添加外键错误的原因:1、外键的字段与...
    99+
    2022-10-18
  • mysql添加外键失败如何解决
    这篇文章主要讲解了“mysql添加外键失败如何解决”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“mysql添加外键失败如何解决”吧! ...
    99+
    2023-02-22
    mysql
  • Mysql添加外键的方式有哪些
    本篇内容介绍了“Mysql添加外键的方式有哪些”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!Mysql添加外键的几种方式注意:添加外键是给从...
    99+
    2023-07-05
  • mysql添加不了外键如何解决
    MySQL添加外键失败的原因可能有以下几种:1. 父表和子表的数据类型不一致:父表外键字段的数据类型必须和子表的被引用字段的数据类型...
    99+
    2023-08-30
    mysql
  • sql怎么给表添加外键约束
    在SQL中,可以使用ALTER TABLE语句来给表添加外键约束。语法如下:ALTER TABLE 表名ADD CONSTRAINT...
    99+
    2023-10-24
    sql
  • Navicat如何添加外键
    小编给大家分享一下Navicat如何添加外键,希望大家阅读完这篇文章之后都有所收获,下面让我们一起去探讨吧!正文想要建立class表与student表之间的外键连接,class为父表,student为子表打...
    99+
    2022-10-18
  • mysql怎么添加自增主键
    在MySQL中,可以通过创建表时使用`AUTO_INCREMENT`关键字来添加自增主键。以下是一个示例:```sqlCREATE ...
    99+
    2023-08-31
    mysql
  • Mysql添加外键的两种方式详解
    目录mysql添加外键的几种方式方法一:方法二:补充:MySQL 删除外键操作总结 Mysql添加外键的几种方式 注意:添加外键是给从表添加(即子表)父表是主表 方法一: 创建表之前: FOREIGN KEY ...
    99+
    2023-04-10
    mysql添加外键 mysql怎么增加外键 MySQL添加外键操作
  • navicat添加外键的方法
    小编给大家分享一下navicat添加外键的方法,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!打开创建好表的设计界面,如图:点下外...
    99+
    2022-10-18
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作