【问题标题】:Deleting data from two linked tables从两个链接表中删除数据
【发布时间】:2013-09-14 06:00:27
【问题描述】:

我有两个表,分别称为 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' );

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

【问题讨论】:

标签: sql sql-delete


【解决方案1】:

我宁愿使用

ON DELETE CASCADE

ACCOUNT 表的外键 PatientID 中的选项。

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

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2012-06-01
    • 2020-07-18
    • 1970-01-01
    • 2021-05-05
    • 1970-01-01
    • 2021-02-28
    • 1970-01-01
    相关资源
    最近更新 更多