CREATE TABLE Comments(
Id INT PRIMARY KEY IDENTITY(0,1),
TEXT NOT NULL,
Date Date NOT NULL ,
Point INT NOT NULL DEFAULT(0),
ID_User INT FOREIGN KEY REFERENCES Users(Id) ON DELETE CASCADE NOT NULL,
ID_Post INT FOREIGN KEY REFERENCES Posts(Id) NOT NULL
)
当我从“用户”表中删除用户时,它向我显示“评论”表具有的错误 其他参考密钥。我该怎么办?
DELETE语句与REFERENCE约束“ FK__Comments__ID_Pos__76969D2E”冲突。在数据库“ Facebook”的表“ dbo.Comments”的“ ID_Post”列中发生了冲突。
答案 0 :(得分:0)
如果要删除用户记录,则需要删除外键表中的记录。
在这种情况下,您需要删除Comments
表中的记录。
DELETE from dbo.Commnts
Where ID_User = "userid"
然后,您可以从Users
表中删除用户记录
答案 1 :(得分:0)
我对此做了一些工作,您在这里引用的外键没有错误。您可能会在其他一些表中引用注释ID。
这就是我尝试过的
CREATE TABLE Users(
Id int primary key
)
CREATE TABLE posts(
Id int primary key
)
insert into Users values(1);
insert into Users values(2);
insert into posts values(3);
insert into posts values(4);
CREATE TABLE Comments(
Id INT PRIMARY KEY IDENTITY(0,1),
ID_User INT FOREIGN KEY REFERENCES Users(Id) ON DELETE CASCADE NOT NULL,
ID_Post INT FOREIGN KEY REFERENCES Posts(Id) NOT NULL
)
insert into Comments values(1,3);
insert into Comments values(2,4);
DELETE
FROM Users
WHERE id = 1 --this works fine