微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

即使在禁用外键后也会发生级联删除

如何解决即使在禁用外键后也会发生级联删除

在 MS sql Server 中存在一个带有 on delete 级联的外键约束。

出于维护目的,我们希望删除主键表 P 中的记录,而不删除外键表 F 中的记录。

因此,禁用外键如下:

ALTER TABLE F NOCHECK CONSTRAINT constraint_name

验证了该语句禁用了外键

select * from sys.foreign_keys where is_disabled=1 and name=constraint_name

当我跑步时,

delete from P

,即使禁用了外键约束,F 中的记录也会被删除。我在 Postgres 和 Oracle 中尝试过,但无法重现此行为。

如何在不进行级联删除的情况下删除记录?

解决方法

除了上述之外,我们还必须执行:

在 F 上禁用所有触发器

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。