iis服务器助手广告广告
返回顶部
首页 > 资讯 > 数据库 >mysql增加外键约束方法分享
  • 331
分享到

mysql增加外键约束方法分享

mysqladb数据库 2023-10-25 08:10:49 331人浏览 安东尼
摘要

  在本篇文章里小编给大家整理的是一篇关于Mysql增加外键约束具体方法及相关实例内容,有兴趣的朋友们可以跟着学习下。 本教程操作环境:windows7系统、mysql8版本、Dell G3电脑。 Mysql 外键约束(FOREIGN

 

在本篇文章里小编给大家整理的是一篇关于Mysql增加外键约束具体方法及相关实例内容,有兴趣的朋友们可以跟着学习下。

教程操作环境:windows7系统、mysql8版本、Dell G3电脑。

Mysql 外键约束(FOREIGN KEY)是表的一个特殊字段,经常与主键约束一起使用。对于两个具有关联关系的表而言,相关联字段中主键所在的表就是主表(父表),外键所在的表就是从表(子表)。

外键用来建立主表与从表的关联关系,为两个表的数据建立连接,约束两个表中数据的一致性和完整性。

定义外键时,需要遵守下列规则:

  • 主表必须已经存在于数据库中,或者是当前正在创建的表。如果是后一种情况,则主表与从表是同一个表,这样的表称为自参照表,这种结构称为自参照完整性。
  • 必须为主表定义主键。
  • 主键不能包含空值,但允许在外键中出现空值。也就是说,只要外键的每个非空值出现在指定的主键中,这个外键的内容就是正确的。
  • 在主表的表名后面指定列名或列名的组合。这个列或列的组合必须是主表的主键或候选键。
  • 外键中列的数目必须和主表的主键中列的数目相同。
  • 外键中列的数据类型必须和主表主键中对应列的数据类型相同。

mysql给表增加外键约束

外键约束可以在修改表时添加,但是添加外键约束的前提是:从表中外键列中的数据必须与主表中主键列中的数据一致或者是没有数据。

在修改数据表时添加外键约束的语法格式如下:

1

2

ALTER TABLE <数据表名> ADD CONSTRaiNT <外键名>

FOREIGN KEY(<列名>) REFERENCES <主表名> (<列名>);

示例

修改数据表 tb_emp2,将字段 deptId 设置为外键,与数据表 tb_dept1 的主键 id 进行关联

1

2

3

4

5

6

mysql> ALTER TABLE tb_emp2

-> ADD CONSTRAINT fk_tb_dept1

-> FOREIGN KEY(deptId)

-> REFERENCES tb_dept1(id);

Query OK, 0 rows affected (1.38 sec)

Records: 0 Duplicates: 0 Warnings: 0

1

2

3

4

5

6

7

8

9

10

11

12

13

mysql> SHOW CREATE TABLE tb_emp2\G

*************************** 1. row ***************************

Table: tb_emp2

Create Table: CREATE TABLE `tb_emp2` (

`id` int(11) NOT NULL,

`name` varchar(30) DEFAULT NULL,

`deptId` int(11) DEFAULT NULL,

`salary` float DEFAULT NULL,

PRIMARY KEY (`id`),

KEY `fk_tb_dept1` (`deptId`),

CONSTRAINT `fk_tb_dept1` FOREIGN KEY (`deptId`) REFERENCES `tb_dept1` (`id`)

) ENGINE=InnoDB DEFAULT CHARSET=gb2312

1 row in set (0.12 sec)

注意:在为已经创建好的数据表添加外键约束时,要确保添加外键约束的列的值全部来源于主键列,并且外键列不能为空。

内容扩展:

使用外键约束的时机

老实说,在MySQL中使用InnoDB表的时候,不一定非用外键约束不可,然而,为了外键约束在某些情况下的功用,我们将通过前面提到的例子的代码进行具体说明。它包括两个MyISAM表,分别用于存放博客文章和评论。

定义数据库模式时,我们要在这两个表之间建立起一对多的关系,方法是在存放评论的表中创建一个外键,以将其中的数据行(即评论)对应到特定的博客文章。下面是创建示例MyISAM表的基本SQL代码:

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

30

31

32

DROP TABLE IF EXISTS `test`.`blogs`;

CREATE TABLE `test`.`blogs` (

`id` INT(10) UNSIGNED AUTO_INCREMENT,

`title` TEXT,

`content` TEXT,

`author` VARCHAR(45) DEFAULT NULL,

PRIROSE KEY (`id`)

) ENGINE=MyISAM DEFAULT CHARSET=utf8;

DROP TABLE IF EXISTS `test`.`comments`;

CREATE TABLE `test`.`comments` (

`id` INT(10) UNSIGNED AUTO_INCREMENT,

`blog_id` INT(10) UNSIGNED DEFAULT NULL,

`comment` TEXT,

`author` VARCHAR(45) DEFAULT NULL,

PRIROSE KEY (`id`)

) ENGINE=MyISAM DEFAULT CHARSET=utf8;

到此这篇关于mysql增加外键约束具体方法的文章就介绍到这了,希望可以帮到你。

转自:微点阅读   https://www.weidianyuedu.com/

来源地址:https://blog.csdn.net/hdxx2022/article/details/132234242

您可能感兴趣的文档:

--结束END--

本文标题: mysql增加外键约束方法分享

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

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

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

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

下载Word文档
猜你喜欢
  • mysql增加外键约束方法分享
      在本篇文章里小编给大家整理的是一篇关于mysql增加外键约束具体方法及相关实例内容,有兴趣的朋友们可以跟着学习下。 本教程操作环境:windows7系统、mysql8版本、Dell G3电脑。 MySQL 外键约束(FOREIGN ...
    99+
    2023-10-25
    mysql adb 数据库
  • mysql增加外键约束具体方法
    本教程操作环境:windows7系统、mysql8版本、Dell G3电脑。 MySQL 外键约束(FOREIGN KEY)是表的一个特殊字段,经常与主键约束一起使用。对于两个具有关...
    99+
    2022-11-12
  • mysql如何增加外键约束
    小编给大家分享一下mysql如何增加外键约束,希望大家阅读完这篇文章之后都有所收获,下面让我们一起去探讨吧! mysql中可用“ALTER TABLE”语句和“FOREIGN K...
    99+
    2022-10-19
  • MySQL设置外键约束的方法
    这篇文章给大家分享的是有关MySQL设置外键约束的方法的内容。小编觉得挺实用的,因此分享给大家做个参考。一起跟随小编过来看看吧。MySQL 外键约束(FOREIGN KEY)用来在两个表的数据之间建立链接,...
    99+
    2022-10-18
  • mysql取消外键约束的方法
    这篇文章主要介绍了mysql取消外键约束的方法,具有一定借鉴价值,需要的朋友可以参考下。希望大家阅读完这篇文章后大有收获。下面让小编带着大家一起了解一下。mysql取消外键限制(约束)的方法:通过“ALTE...
    99+
    2022-10-18
  • MySQL怎么添加外键约束
    MySQL中添加外键约束的方法如下所示:1. 创建表时添加外键约束:```sqlCREATE TABLE 表名 (列名 数据类型,....
    99+
    2023-10-12
    MySQL
  • mysql中设置外键约束的方法
    这篇文章将为大家详细讲解有关mysql中设置外键约束的方法,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。mysql中设置外键约束的方法:可以通过FOREIGN KEY关键...
    99+
    2022-10-18
  • mysql禁用外键约束的方法是什么
    在MySQL中,可以通过以下方法禁用外键约束: 使用ALTER TABLE语句禁用外键约束: ALTER TABLE table...
    99+
    2023-10-26
    mysql
  • mysql查询某个表外键约束的方法
    mysql查询某个表外键约束的方法?这个问题可能是我们日常学习或工作经常见到的。希望通过这个问题能让你收获颇深。下面是小编给大家带来的参考内容,让我们一起来看看吧!mysql查询某个表的外键约束的方法:使用...
    99+
    2022-10-18
  • mysql增加外键的方法
    小编给大家分享一下mysql增加外键的方法,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!mysql如何添加外键,添加外键说明不止...
    99+
    2022-10-18
  • MySQL添加外键约束语句怎么写
    要向MySQL表中添加外键约束,可以使用ALTER TABLE语句。语法如下:ALTER TABLE 表名ADD CONSTRAIN...
    99+
    2023-10-23
    MySQL
  • mysql创建表时设置外键约束的方法
    MySQL是一种关系型数据库管理系统,关系数据库将数据保存在不同的表中,而不是将所有数据放在一个大仓库内,这样就增加了速度并提高了灵活性。MySQL所使用的 SQL 语言是用于访问数据库的最常用标准化语言。...
    99+
    2022-10-18
  • mysql添加外键约束失败怎么解决
    当MySQL添加外键约束失败时,通常有以下几种解决方法:1. 确保外键约束的列类型和长度与参考表的主键或唯一键的列类型和长度相同。例...
    99+
    2023-10-20
    mysql
  • mysql不能添加外键约束怎么解决
    MySQL是可以添加外键约束的,但是在某些情况下可能会出现无法添加外键约束的情况,可能是由于以下几个原因导致的:1. 数据类型不匹配...
    99+
    2023-10-23
    mysql
  • 在phpmyadmin中设置外键约束的方法
    小编给大家分享一下在phpmyadmin中设置外键约束的方法,希望大家阅读完这篇文章后大所收获,下面让我们一起去探讨吧!首先选择需要设置外键约束的数据库选择需要设置外键的表,点击【操作】(需要设置主表与从表...
    99+
    2022-10-18
  • mysql主键约束的设置方法
    这篇文章主要介绍了mysql主键约束的设置方法,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。1、说明在定义完列之后直接使用 UNIQUE关键字指定唯一约束。UNIQUE 和 ...
    99+
    2023-06-15
  • mysql去除主键约束的方法
    小编给大家分享一下mysql去除主键约束的方法,希望大家阅读完这篇文章后大所收获,下面让我们一起去探讨吧!mysql去除主键约束的方法:首先执行【Alter table tb change id id in...
    99+
    2022-10-18
  • mysql不能添加外键约束的原因有哪些
    MySQL不能添加外键约束的原因有以下几个:1. 数据类型不匹配:外键约束要求参照表和被参照表的字段类型和长度必须一致。如果类型不匹...
    99+
    2023-08-30
    mysql
  • 约束Mysql创建外键的两种方式介绍
    下面一起来了解下约束Mysql创建外键的两种方式,相信大家看完肯定会受益匪浅,文字在精不在多,希望约束Mysql创建外键的两种方式这篇短内容是你想要的。通过给mysql的表字段添加外键约束,可以有效的保持数...
    99+
    2022-10-18
  • mysql主键,外键,非空,唯一,默认约束及创建表的方法
    目录一、操作前提二、mysql创建/新建表1、首先我们需要创建一个数据库;2、然后进入这个数据库;3、创建表;4、查看表;三、使用主键约束1、单字段主键2、多字段联合主键四、使用外键约束1、mysql中外键是什么?2、什...
    99+
    2022-07-26
    mysql主键 mysql外键 mysql非空 mysql唯一 mysql默认约束 mysql表创建
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作