鉴于staff
和login
,我想根据jobs
删除Staff.StaffID
,StaffID
和LoginID
中的相应行是jobs
中的外键。此外,StaffID
也是login
中的外键。当我使用以下查询时,我收到关于前键约束失败的错误。有什么想法吗?
SQL:
DELETE jobs, login, staff
FROM jobs
INNER JOIN login
WHERE login.LoginID=jobs.loginID
AND staff.StaffID = '18';
显然这是不完整的。我想在AND之前继续进行INNER JOINING,以便进行内部联接登录。StaffID= staff.StaffID以及staff.StaffID = jobs.JobID。但是,当我这样做时,出现错误:
DELETE jobs, login, staff
FROM jobs
INNER JOIN login, staff
WHERE login.LoginID=jobs.LoginID
AND staff.StaffID=login.StaffID
AND staff.StaffID = login.LoginID
AND staff.StaffID = '18';
出现以下错误:“#1451-无法删除或更新父行:外键约束失败(younglife
。login
,CONSTRAINT FK_59
外部键({{1 }})参考文献StaffID
(staff
))“
我可以说这是无效的,我想知道什么是最好的方法。谢谢。
答案 0 :(得分:1)
您可以运行三个删除操作:
DELETE j
FROM jobs j JOIN
login l
ON l.LoginID = j.LoginID
WHERE l.StaffID = 18;
DELETE l
FROM login l
WHERE l.StaffID = 18;
DELETE s
FROM staff s
WHERE s.StaffID = 18;
请确保您以正确的顺序进行删除。