我正在整理数据库并尝试对所有依赖项进行排序,并且在将一个外键添加到表中时,我一直遇到错误。我已经检查了约束,似乎无法发现,所以我只是想知道问题所在。
'PATIENTS'表成功保存了'约会'表 - 无法创建关系'FK_Appointments_PATIENTS'。 ALTER TABLE语句与FOREIGN KEY约束冲突 “FK_Appointments_PATIENTS”。冲突发生在数据库中 “OEPD_PRO”,表“dbo.PATIENTS”,列'PatientNumber'。
这是在我尝试保存表时不断标记的错误。 'PatientNumber'是'PATIENTS'表中的主键,我正在尝试将其作为外键添加到'约会'表中。
ALTER TABLE Appointments
ADD CONSTRAINT FK_PatientAppointments
FOREIGN KEY (PatientNumber) REFERENCES PATIENTS(PatientNumber);
我非常感谢任何帮助/建议。
谢谢, KB
答案 0 :(得分:2)
检查Appointments
无效PatientNumber
s
select *
from Appointments a
where not exists (
select 1
from Patients p
where a.PatientNumber = p.PatientNumber
)
如果需要删除它们,可以删除它们:
delete a
from Appointments a
where not exists (
select 1
from Patients p
where a.PatientNumber = p.PatientNumber
)
然后尝试添加您的外键。
答案 1 :(得分:0)
可能是因为表中已有数据与Foreign Kye值不匹配。假设我在Patients.PatientId中有值1,2和3,并且字段Appointments.PatientId的值为4,因此不符合约束规则。因此,在添加约束之前,请确保表中没有任何此类无效数据。