Chinaunix首页 | 论坛 | 博客
  • 博客访问: 154231
  • 博文数量: 42
  • 博客积分: 0
  • 博客等级: 民兵
  • 技术积分: 399
  • 用 户 组: 普通用户
  • 注册时间: 2015-09-23 11:47
个人简介

程序猿啊程序猿

文章分类

全部博文(42)

文章存档

2016年(28)

2015年(14)

我的朋友

分类: Mysql/postgreSQL

2015-09-24 18:02:20

  首先要明确一点: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
阅读(2411) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~