我有两个名为Patient and Account的表。 患者有PatientID,因为它是PrimaryKey。帐户的AccountID为PK,PatientID是外键,并且还将treatmentDate作为元组。
我想删除自2005年以来没有帐户的所有患者。 这就是我所拥有的:
DELETE FROM PATIENT
WHERE PATIENTID IN (
select account.PatientID
from ACCOUNT
where Treatmentdate < '01-JAN-2005' );
DELETE FROM ACCOUNT
WHERE PATIENTID IN (
select account.PatientID
from ACCOUNT
where Treatmentdate < '01-JAN-2005' );
有没有其他方法可以做到这一点?
答案 0 :(得分:1)
我宁愿使用
ON DELETE CASCADE
ACCOUNT表的外键PatientID中的选项。
在这种情况下,您不需要第二个查询。
参考资料(网上有很多信息): SQL ON DELETE CASCADE, Which Way Does the Deletion Occur?