从两个链接表中删除数据

时间:2013-09-10 13:33:21

标签: sql sql-delete

我有两个名为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' );

有没有其他方法可以做到这一点?

1 个答案:

答案 0 :(得分:1)

我宁愿使用

ON DELETE CASCADE
ACCOUNT表的外键PatientID中的

选项。

在这种情况下,您不需要第二个查询。

参考资料(网上有很多信息): SQL ON DELETE CASCADE, Which Way Does the Deletion Occur?