mysql怎么生成表的外键

在mysql数据库中有一个主表和有一个从表 , 在从表中怎么生成一个外键呢?在主表和从表中有一种约束力 , 增加从表数据时(从表一个列)在主表已经保存了一个主键的数据 , 如果主表主键不存在的数据增加从表中数据库会出现错误 , 主表和从表数据是一一对应的 。 下面对你学习mysql有帮助的话 , 给我投票、点赞或者收藏!
需要这些哦
mysql
sqlyog
方式/
1在MySQL-test数据库中新建两个表:yuangong,gongzi.
这个表是本家儿表 , 员工编号 , 名称 。
CREATE TABLE `yuangong` (

`bianhao` varchar(3) NOT NULL,

`mingcheng` varchar(10) DEFAULT NULL,
PRIMARY KEY (`bianhao`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8

mysql怎么生成表的外键

文章插图

2这个gongzi是从表:编号 , 月份 , 工资 。

CREATE TABLE `gongzi` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`bianhao` varchar(3) DEFAULT NULL,
`yuefen` varchar(6) DEFAULT NULL,
`gongzi` int(11) DEFAULT NULL,
PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8
mysql怎么生成表的外键

文章插图

3在从从表中增添一个外键 , 选择从表bianhao列 , 因为bianhao在本家儿表中是本家儿键 。
ALTER TABLE `test`.`gongzi`
ADD FOREIGN KEY (`bianhao`) REFERENCES `test`.`yuangong`(`bianhao`) ON DELETE CASCADE;
mysql怎么生成表的外键

文章插图

4在输入本家儿表和从表的数据:
insert into `yuangong` (`bianhao`, `mingcheng`) values('001','王媛媛');
insert into `yuangong` (`bianhao`, `mingcheng`) values('002','张依依');


insert into `gongzi` (`id`, `bianhao`, `yuefen`, `gongzi`) values('1','001','202001','1000');
insert into `gongzi` (`id`, `bianhao`, `yuefen`, `gongzi`) values('2','001','202002','2000');
insert into `gongzi` (`id`, `bianhao`, `yuefen`, `gongzi`) values('3','001','202003','3000');
insert into `gongzi` (`id`, `bianhao`, `yuefen`, `gongzi`) values('4','002','202004','3000');
mysql怎么生成表的外键

文章插图
mysql怎么生成表的外键

文章插图

5在外键中选择的是DELETE CASCADE选项 , 暗示删除本家儿表数据时从表响应数据要MySQL主动删除 。
mysql怎么生成表的外键

文章插图

6删除本家儿表编号=001的数据 , 看看从表数据有什么转变 。
DELETE FROM yuangong WHERE bianhao='001'
SELECT * FROM gongzi

【mysql怎么生成表的外键】本家儿表删除bianhao=001的数据 , 在从表中系统也删除了bianhao=001的数据 。
mysql怎么生成表的外键

文章插图
mysql怎么生成表的外键

文章插图


以上内容就是mysql怎么生成表的外键的内容啦 , 希望对你有所帮助哦!

    推荐阅读