表信息
网络异常,图片无法展示
|
网络异常,图片无法展示
|
- 接下来,我们可以做一个测试,删除id为1的部门信息。
- 结果,我们看到删除成功,而删除成功之后,部门表不存在id为1的部门,而在emp表中还有很多的员 工,关联的为id为1的部门,此时就出现了数据的不完整性。 而要想解决这个问题就得通过数据库的 外键约束。
语法
添加外键
CREATE TABLE 表名( 字段名 数据类型, ... [CONSTRAINT] [外键名称] FOREIGN KEY (外键字段名) REFERENCES 主表 (主表列名) );
ALTER TABLE 表名 ADD CONSTRAINT 外键名称 FOREIGN KEY (外键字段名) REFERENCES 主表 (主表列名) ;
案例:
- 为emp1表的dept_id字段添加外键约束,关联dept表的主键id。
alter table emp add constraint fk_emp_dept_id foreign key (dept_id) references dept(id);
网络异常,图片无法展示
|
删除外键
ALTER TABLE 表名 DROP FOREIGN KEY 外键名称;
案例:
- 删除emp表的外键fk_emp_dept_id。
alter table emp drop foreign key fk_emp_dept_id;
网络异常,图片无法展示|
删除/更新行为
- 添加了外键之后,再删除父表数据时产生的约束行为,我们就称为删除/更新行为。具体的删除/更新行为有以下几种:
具体语法为:
ALTER TABLE 表名 ADD CONSTRAINT 外键名称 FOREIGN KEY (外键字段) REFERENCES 主表名 (主表字段名) ON UPDATE CASCADE ON DELETE CASCADE;