我有两个表,User and Data. For audit purposes, I have two columns added in the . For audit purposes, I have two columns added in the
这两列都引用User表及其UserId列。我在这两个外键上设置了一个On delete set null约束。Server不允许我创建表Data并引发错误:
在表‘数据’上引入外键约束'FK__Data__LastModifi__0A9D95DB‘可能会导致循环或多个级联路径。指定“删除不操作”或“更新不操作”,或修改其他外键约束。
这些是SQL脚本:
CREATE TABLE [User]
(
UserId int PRIMARY KEY IDENTITY(1,1),
Name varchar(100) not null
)
CREATE TABLE [Data]
(
Id int PRIMARY KEY IDENTITY(1,1),
A int,
B varchar(10),
AddedBy int
FOREIGN KEY REFERENCES [User](UserId)
ON DELETE SET NULL,
LastModifiedBy int
FOREIGN KEY REFERENCES [User](UserId)
ON DELETE SET NULL
)删除ON DELETE约束解决了这个问题,但是为什么我不能有两个ON DELETE SET NULL条件呢?
发布于 2020-07-06 20:31:46
为什么我不能有两个关于删除设置为空的条件?
因为这会导致多个级联路径,而Server只是不支持这种方式。
有一个悬而未决的反馈请求,并允许在父子关系中级联这里。
作为解决办法,您可以在DELETE NO操作上创建关系之一,或者在处理级联行为的用户上使用一个而不是DELETE触发器。
https://stackoverflow.com/questions/62763244
复制相似问题