sql-server - ForeignKey SetNull OnDelete
问题描述
我想知道当我删除相关行时,是否可以使用复合外键将此外键的一列设置为空。
实际上,第二列(我不想为空的那一列)用于我不想被停用的其他外键。
精度:我使用实体框架核心(最新版本)。
解决方案
据我所知,这是不可能的,因为您的外键值将引用不存在的记录。但是,您可以使用一些解决方法:
另一列
您可能会创建具有相同值的另一列,并且旧列将仅引用您打算删除的表,其他表的外键将链接到具有相同值的新列
没有为此表定义外键
您可以避免为可能删除记录的表定义外键,这样就不会影响您。
关闭外键检查
这将“解决”您的问题,但应尽可能避免。
虚拟移除
在目标表中,您可以创建一个已删除标志并将其设置为 true 而不是实际删除。
推荐阅读
- highcharts - Highcharts - 隐藏 dataLabels 领导者
- elixir - Enum.chunk_every/2 的奇怪行为
- html - 自定义滚动条但一直消失的效果
- android - Gradle - Android - buildConfigField 基于一对 (productFlavors, buildTypes)
- postgresql - 包含/排除项目的父/子表
- java - spring boot调度在方法级别启用/禁用任务
- matlab - 如何在 matlab 中绘制 PD 补偿器的输出?
- sql - WHERE 子句中的动态日期取决于当前日期
- python - 将 ProcessPoolExecutor 分配给定义的 cpus 并使用队列进行通信
- c - 使用递归反转数组