2012-06-05 86 views
0

相抵觸,所以我有2個相互關聯與FK外鍵:與外鍵約束

appointment 
    {id, dept.id, datetime, sometable.id, sometableagain.id} 
task 
    {id, appointment.id, deptlead.id, taskname} 
deptlead 
    {id, name} 

,所以我不得不改變預約表,從另一個表外鍵的另一個表。所以我放棄了鍵(task_appointment_fk,appointment_sometable_fk,appointment_sometableagain_fk)修改了表格以添加新字段並再次添加了所有內容。最後兩個添加沒有問題。而另外一個(task_appointment_fk)不停地給我一個這樣的信息:

"ALTER TABLE statement conflicted with the Forien Key Constraint "dept_appointment". The Cconflict occurred in the database "MyDb" , table "appointment", column "id" 

,所以我找到了一些解決方案,指出有可能是對具有不上任命表中存在一個appointmentid值任務的某些行。所以我嘗試插入具有相同值的行。仍然給我同樣的事情。事情是,我想從任務中刪除行,以使其更容易,但這樣做,我必須再次放棄所有的fks,並在其他桌子上做同樣的事情,我有很多其他表..

需要一些建議。

謝謝!!

回答

0

您可以編寫查詢來查看外鍵表中的哪些值在主鍵表中沒有匹配的鍵記錄。如果值存在,則嘗試刪除它們。

select * from  [task] a 
left join [appointment] b 
on  a.appointment_id = b.id 
+0

是的,我讀過這個地方。這個問題就像我說的那樣,還有幾個fk連接到這些fks上。如果我這樣做,將很難檢索它們並重新映射它們。 – gdubs