0

我有两个表,称为 Patient 和 Account。Patient 有 PatientID,因为它是 PrimaryKey。Account 有 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' );

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

4

1 回答 1

1

我宁愿使用

ON DELETE CASCADE

ACCOUNT 表的外键 PatientID 中的选项。

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

请参阅参考(网上有很多信息): SQL ON DELETE CASCADE,删除发生的方式是什么?

于 2013-09-10T14:47:36.010 回答