首页 > 解决方案 > DELETE in table where 是 FK 引用当前表的 PK

问题描述

有两个表:

在此处输入图像描述

EMPLOYEES表中,EMPLOYEE_ID是主键。 MGR_ID是经理标识符,指的是EMPLOYEE_ID. 是表列DEPT_ID的外键。DEPARTMENT_IDDEPARTMENTS

DEPARTMENTS表中,DEPARTMENT_ID是主键。

当我执行以下命令时

DELETE
FROM departments
WHERE department_id = 40;

我得到这个结果

0 行影响

我的外键具有参考完整性是有限的 - ON DELETE CASCADE。为什么 DELETE 不是级联的?MGR_ID这张表的引用EMPLOYEE_ID列是什么有关系吗?

标签: sql-serversql-delete

解决方案


您不能删除它,因为它与主键有依赖关系,如果您仍想继续,则必须打破依赖关系或删除查询中的依赖关系。


推荐阅读