mysql如何增加外键约束

60次阅读
没有评论

共计 1554 个字符,预计需要花费 4 分钟才能阅读完成。

丸趣 TV 小编给大家分享一下 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 如何增加外键约束”有了一定的了解,如果想了解更多相关知识,欢迎关注丸趣 TV 行业资讯频道,感谢各位的阅读!

正文完
 
丸趣
版权声明:本站原创文章,由 丸趣 2023-07-15发表,共计1554字。
转载说明:除特殊说明外本站除技术相关以外文章皆由网络搜集发布,转载请注明出处。
评论(没有评论)