DELETE语句与引用约束“fk_claims_patients”冲突
本文关键字:claims patients 冲突 fk 语句 引用 约束 DELETE | 更新日期: 2023-09-27 18:09:10
我试图删除一个"人"从我的网站表,但我得到错误,写在帖子的标题,错误是指向我这个代码:
Patient patient = db.Patients.Single(p => p.Patient id == id);
db.Patients.Remove(patient);
db.SaveChanges();
return RedirectToAction("Index");
或者,如果可能的话,我如何添加一个例外,这样当我点击删除按钮时,它会打开另一个页面并告诉我,我没有删除那个人的权利。
知道的吗?
您需要删除引用该患者的所有索赔。实现此目的的一种方法是向外键约束添加级联删除,但是,我不知道您使用的是哪个DBMS。
错误信息似乎建议SQL Server,所以这里有一些SQL Server的信息-级联引用完整性约束
为了解决这个问题,您需要执行一个DROP约束,然后执行一个ADD约束。
ALTER TABLE dbo.Claims
DROP CONSTRAINT FK_Claims_Patients
ALTER TABLE dbo.Claims
ADD CONSTRAINT FK_Claims_Patients
FOREIGN KEY (PatientId) REFERENCES dbo.Patients(PatientId) ON DELETE CASCADE
Patient patient = db.Patients.Single(p => p.Patient id == id);
patient.Claims.clear();
db.Patients.Remove(patient);
db.SaveChanges();
将删除链接表中的相关项,并允许删除。