为什么
两个表有相同的一列,我们需要用一个外键约束来约束两个表的一些操作,使得满足多表的逻辑。比如一个表是部门,一个表是员工,两个表都有部门id,我们不能在部门还存在员工的时候将部门裁掉,也不能给一个未创建的部门添加新员工。
是什么
- 语法:
constraint 外键名 foreign key (子表的列名) references 父表表名(父表的列名);
比如要将员工表(employee)中的部门id(dep_id)设置为外键,那么父表是部门(department),则
constraint emp_dep_fk foreign key (dep_id) references department(id);
-
注意
要先创建父表,才能在创建子表时添加外键。
同时在给表添加数据时,也得先给父表添加数据(创建部门),再给子表添加数据(给部门招新)。 -
删除外键
删除外键语法格式如下
alter table 表名 drop foreign key 外键名;
比如
alter table employee drop foreign key emp_dep_fk;
- 添加外键
alter table 表名 add constraint 外键名 foreign key 子表列名 references 主表表名(主表列名);