所以我有两个表格彼此相关,有一个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"
所以我找到了一些解决方案,说明任务中可能有一些行具有约会表上不存在的约会值。所以我尝试插入具有相同值的行。仍然给了我同样的东西。问题是,我想从任务中删除行以使其更容易但是这样做我必须再次删除所有fks并在其他表上执行相同的操作,并且我有很多其他表..
需要一些建议。
谢谢!
答案 0 :(得分:0)
您可以编写一个查询,以查看外键表中哪些值在主键表中没有匹配的键记录。如果有值,则尝试删除它们。
select * from [task] a
left join [appointment] b
on a.appointment_id = b.id