首先要明确一点:Mysql存储引擎中只有InnoDB存储引擎支持外键,所以两个表必须是InnoDB表,我的数据库版本是5.6。
假设有两个表,表A:emp,表B:dept,两个表相关联的表字段为deptno.
表A中的deptno是以表B中deptno为准,所以要在表A中设置外键来关联B表(PS:设置外键关联的两个表字段必须都先设置索引。)
对于A表的操作:把表字段deptno设置为索引 alter table emp add index idx_deptno(deptno)
对于B表的操作:把表字段deptno设置为索引 alter table dept add index idx_deptno(deptno)
把两个表关联起来:alter table emp add constraint FK_deptno foreign key(deptno) references dept(deptno) on update cascade on delete cascade;
命令解释:如果只是把两个表关联起来,只需要写:alter table emp add constraint FK_deptno foreign key(deptno) references dept(deptno)
但是为了实现dept表更新或删除deptno数据时,emp表能随之更新或删除,就必须加上on update cascade或者on delete cascade
阅读(2441) | 评论(0) | 转发(0) |