探究MySQL左外链
什么是左外链?
在MySQL中,外链指的是在一个表中引用了另外一个表的主键作为自己的外键。而左外链则是在左边的表中即使没有对应的数据时,也可以显示右边表的所有信息。
为什么要使用左外链?
使用左外链可以透过在一张表里关联其他一个或多个表的方式,使得可以利用join来select所需要的字段数据。不同于inner join在选择(table 2中在table 1中的主键已经定义过的)相关数据时,会将有任何unmatched数据舍去(inner join只会选择左右两个表中都有记录的相关数据),left-join/outer-join会选择保留 其最左边的(left)table的所有记录
如何开启MySQL的左外链功能?
在MySQL中,左外链并不是默认开启的,因此需要手动设置来启用
1. 修改配置文件(my.cnf)
在[mysqld]下增加或修改:foreign_key_checks=1 支持外键
2. 创建表使用外键关系
在创建表的时候,增加Supplies表的外键关系, 对应到Parts表的part_id
示例SQL :CREATE TABLE `Supplies` (`supp_id` char(10) NOT NULL,`part_id` int(11) DEFAULT NULL, FOREIGN KEY (`part_id`) REFERENCES `Parts` (`part_id`)
如何检测MySQL是否开启了外链?
1.查看mysql是否使用了InnoDB,使用 InnoDB作为MySQL的引擎会自动支持外键
2.使用SHOW VARIABLES LIKE 'have_innodb'查询是否开启了InnoDB。
3. 查看是否设置了foreign_key_checks,使用命令 SHOW VARIABLES LIKE 'foreign_key_checks',默认值为开启(为1)
如果返回结果为0,则需要修改设置。
结论
MySQL的左外链可以实现两个或多个表之间的关联,使得数据显示更加关联。若需要开启该功能,则需要手动配置;检测时需要查看是否使用了InnoDB以及是否设置了foreign_key_checks。