mysql怎么生成表的外键
1、在MySQL-test数据库中新建两个表:yuangong,gongzi.这个表是主表,员工编号,名称。 CREATETABLE`yuangong`(`bianhao`varchar(3)NOTNULL,`mingcheng`varchar(10)DEFAULTNULL,PRIMARYKEY(`bianhao`))ENGINE=InnoDBDEFAULTCHARSET=utf8
2、 这个gongz坡纠课柩i是从表:编号,月份,工资。 CREATETABLE`gongzi`(`id`int(11像粜杵泳)NOTNULLAUTO_INCREMENT,`bianhao`varchar(3)DEFAULTNULL,`yuefen`varchar(6)DEFAULTNULL,`gongzi`int(11)DEFAULTNULL,PRIMARYKEY(`id`))ENGINE=InnoDBDEFAULTCHARSET=utf8
3、在从从表中增加一个外键,选择从表bianhao列,因为bianhao在主表中是主键。ALTER TABLE `test`.`gongzi` ADD FOREIGN KEY (`bianhao`) REFERENCES `test`.`yuangong`(`bianhao`) ON DELETE CASCADE;
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');
5、在外键中选择的是DELETE CASCADE选项,表示删除主表数据时从表相应数据要MySQL自动删除。
6、删除主表编号=001的数据,看看从表数据有什么变化。DELETE FROM yuangong WHERE bianhao='001'SELECT * FROM gongzi主表删除bianhao=001的数据,在从表中系统也删除了bianhao=001的数据。