sql-server - DELETE in table where 是 FK 引用当前表的 PK
问题描述
有两个表:
在EMPLOYEES
表中,EMPLOYEE_ID
是主键。
MGR_ID
是经理标识符,指的是EMPLOYEE_ID
.
是表列DEPT_ID
的外键。DEPARTMENT_ID
DEPARTMENTS
在DEPARTMENTS
表中,DEPARTMENT_ID
是主键。
当我执行以下命令时
DELETE
FROM departments
WHERE department_id = 40;
我得到这个结果
0 行影响
我的外键具有参考完整性是有限的 - ON DELETE CASCADE
。为什么 DELETE 不是级联的?MGR_ID
这张表的引用EMPLOYEE_ID
列是什么有关系吗?
解决方案
您不能删除它,因为它与主键有依赖关系,如果您仍想继续,则必须打破依赖关系或删除查询中的依赖关系。
推荐阅读
- javascript - 在纱线中安装所有未满足的依赖项
- r - R:从 for 循环中的卡方检验中提取 p 值
- java - 为什么 java.time.Instant 不显示任何闰秒?
- amazon-web-services - 从上传到 S3 的文件触发的无服务器框架和 AWS Step Functions(AWS 状态机)
- python-3.x - PyWAVES:simplejson.errors.JSONDecodeError:预期值:第 1 行第 1 列(字符 0)
- javascript - module.export 正在导出对象而不是存储在变量中的字符串
- python - 从 Python 中的嵌套字典中按顺序排序和打印键和值
- javascript - 更改嵌套函数内的变量值
- c# - 如何使用 C# 9.0 新委托*将方法从 C# 9.0 正确发送到 C/C++ 库?
- java - 如何使用 Selenium 和 Java 从 Chrome 获取控制台日志