首页数据库MySQL数据库怎样添加外键约束,要遵守哪些规则

MySQL数据库怎样添加外键约束,要遵守哪些规则

时间2024-03-22 21:26:03发布访客分类数据库浏览1041
导读:这篇文章主要给大家介绍“MySQL数据库怎样添加外键约束,要遵守哪些规则”的相关知识,下文通过实际案例向大家展示操作过程,内容简单清晰,易于学习,有这方面学习需要的朋友可以参考,希望这篇“MySQL数据库怎样添加外键约束,要遵守哪些规则”文...
这篇文章主要给大家介绍“MySQL数据库怎样添加外键约束,要遵守哪些规则”的相关知识,下文通过实际案例向大家展示操作过程,内容简单清晰,易于学习,有这方面学习需要的朋友可以参考,希望这篇“MySQL数据库怎样添加外键约束,要遵守哪些规则”文章能对大家有所帮助。

mysql中可用“ALTER TABLE”语句和“FOREIGN KEY”关键字增加外键,语法“ALTER TABLE 表名 ADD CONSTRAINT 外键名 FOREIGN KEY(列名) REFERENCES 主表名 (列名); ”。

本教程操作环境: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数据库怎样添加外键约束,要遵守哪些规则”的文章就介绍到这了,感谢各位的阅读,更多相关MySQL数据库怎样添加外键约束,要遵守哪些规则内容,欢迎关注网络资讯频道,小编将为大家输出更多高质量的实用文章!

声明:本文内容由网友自发贡献,本站不承担相应法律责任。对本内容有异议或投诉,请联系2913721942#qq.com核实处理,我们将尽快回复您,谢谢合作!


若转载请注明出处: MySQL数据库怎样添加外键约束,要遵守哪些规则
本文地址: https://pptw.com/jishu/650888.html
Python自由变量有什么特点,怎样实现 declare(strict_types=1)的有效范围是什么

游客 回复需填写必要信息