返回顶部
首页 > 资讯 > 数据库 >mysql增加外键约束具体方法
  • 390
分享到

mysql增加外键约束具体方法

2024-04-02 19:04:59 390人浏览 独家记忆
摘要

本教程操作环境:windows7系统、Mysql8版本、Dell G3电脑。 mysql 外键约束(FOREIGN KEY)是表的一个特殊字段,经常与主键约束一起使用。对于两个具有关

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

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

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

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

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

mysql给表增加外键约束

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

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


ALTER TABLE <数据表名> ADD CONSTRaiNT <外键名>
FOREIGN KEY(<列名>) REFERENCES <主表名> (<列名>);

示例

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


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

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代码:


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增加外键约束具体方法的文章就介绍到这了,更多相关mysql怎么增加外键约束内容请搜索编程网以前的文章或继续浏览下面的相关文章希望大家以后多多支持编程网!

您可能感兴趣的文档:

--结束END--

本文标题: mysql增加外键约束具体方法

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

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

猜你喜欢
  • mysql增加外键约束具体方法
    本教程操作环境:windows7系统、mysql8版本、Dell G3电脑。 MySQL 外键约束(FOREIGN KEY)是表的一个特殊字段,经常与主键约束一起使用。对于两个具有关...
    99+
    2024-04-02
  • mysql增加外键约束方法分享
      在本篇文章里小编给大家整理的是一篇关于mysql增加外键约束具体方法及相关实例内容,有兴趣的朋友们可以跟着学习下。 本教程操作环境:windows7系统、mysql8版本、Dell G3电脑。 MySQL 外键约束(FOREIGN ...
    99+
    2023-10-25
    mysql adb 数据库
  • mysql如何增加外键约束
    小编给大家分享一下mysql如何增加外键约束,希望大家阅读完这篇文章之后都有所收获,下面让我们一起去探讨吧! mysql中可用“ALTER TABLE”语句和“FOREIGN K...
    99+
    2024-04-02
  • mysql怎么加外键约束
    如何使用 mysql 添加外键约束?确定主外键字段。在子表中定义外键约束,引用主表的主键字段。语法:alter table 子表_名称 add foreign key (外键_字段) r...
    99+
    2024-05-30
    mysql
  • 【MySQL】主键约束和外键约束
    目录 1、PRIMARY KEY 2、FOREIGN KEY 3、表的设计 3.1 一对一 3.2 一对多 3.3 多对多 1、PRIMARY KEY 上期我们讲述了 not null 和 unique 约束,而本期的第一个约束就...
    99+
    2023-09-01
    mysql 数据库
  • MySQL外键约束
    CASCADE:父表delete、update的时候,子表会delete、update掉关联记录; SET NULL:父表delete、update的时候,子表会将关联记录的外键字段所在列设为null,所以注意在设计子表时外键不能设为no...
    99+
    2020-02-25
    MySQL外键约束
  • MySQL怎么添加外键约束
    MySQL中添加外键约束的方法如下所示:1. 创建表时添加外键约束:```sqlCREATE TABLE 表名 (列名 数据类型,....
    99+
    2023-10-12
    MySQL
  • mysql如何添加外键约束
    要在MySQL数据库中添加外键约束,可以使用以下步骤: 在创建表时定义外键约束: CREATE TABLE 表名 ( 列名 数据...
    99+
    2024-04-09
    mysql
  • mysql取消外键约束的方法
    这篇文章主要介绍了mysql取消外键约束的方法,具有一定借鉴价值,需要的朋友可以参考下。希望大家阅读完这篇文章后大有收获。下面让小编带着大家一起了解一下。mysql取消外键限制(约束)的方法:通过“ALTE...
    99+
    2024-04-02
  • MySQL设置外键约束的方法
    这篇文章给大家分享的是有关MySQL设置外键约束的方法的内容。小编觉得挺实用的,因此分享给大家做个参考。一起跟随小编过来看看吧。MySQL 外键约束(FOREIGN KEY)用来在两个表的数据之间建立链接,...
    99+
    2024-04-02
  • MySQL主键约束和外键约束详解
    目录1、PRIMARY KEY2、FOREIGN KEY3、表的设计3.1 一对一3.2 一对多3.3 多对多1、PRIMARY KEY 上期我们讲述了 not null 和 unique 约束,而本期的第一个约束就是这...
    99+
    2023-03-13
    mysql主键约束和外键约束 mysql主键和外键
  • mysql中设置外键约束的方法
    这篇文章将为大家详细讲解有关mysql中设置外键约束的方法,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。mysql中设置外键约束的方法:可以通过FOREIGN KEY关键...
    99+
    2024-04-02
  • MySQL主键约束和外键约束怎么设置
    这篇“MySQL主键约束和外键约束怎么设置”文章的知识点大部分人都不太理解,所以小编给大家总结了以下内容,内容详细,步骤清晰,具有一定的借鉴价值,希望大家阅读完这篇文章能有所收获,下面我们一起来看看这篇“M...
    99+
    2023-03-13
    mysql
  • 详解MySQL 外键约束
    官方文档: https://dev.mysql.com/doc/refman/5.7/en/create-table-foreign-keys.html 1.外键作用: MySQL通过外键约束来保证表与表之间的数...
    99+
    2022-05-11
    MySQL 外键 MySQL 外键约束
  • MySQL外键约束详解
    目录一、mysql外键约束作用二、外键约束创建(一)创建外键约束的条件(二)在创建数据表时创建外键约束(三)在创建数据表后添加外键约束三、外键约束功能演示今天继续给大家介绍MySQL相关知识,本文主要内容是MySQL外键...
    99+
    2022-07-29
    Mysql外键约束
  • mysql增加外键的方法
    小编给大家分享一下mysql增加外键的方法,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!mysql如何添加外键,添加外键说明不止...
    99+
    2024-04-02
  • MySQL添加外键约束语句怎么写
    要向MySQL表中添加外键约束,可以使用ALTER TABLE语句。语法如下:ALTER TABLE 表名ADD CONSTRAIN...
    99+
    2023-10-23
    MySQL
  • mysql如何为字段添加外键约束
    要为字段添加外键约束,需要执行以下步骤: 1、创建两个表,其中一个表将包含外键,另一个表将包含主键。例如,我们创建一个名为table...
    99+
    2024-04-22
    mysql
  • phpMyAdmin如何添加外键约束
    小编给大家分享一下phpMyAdmin如何添加外键约束,希望大家阅读完这篇文章之后都有所收获,下面让我们一起去探讨吧!点击想添加外键的数据库逐个点击表(我用user做例子)点操作表选项内修改存储引擎省略修改...
    99+
    2024-04-02
  • sqlserver如何添加外键约束
    在SQL Server中,可以使用ALTER TABLE语句来添加外键约束。以下是添加外键约束的语法:```sqlALTER TAB...
    99+
    2023-09-26
    sqlserver
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作