0

背景信息: 我正在尝试规范化 SQLite 数据库。数据库有一个名为“image”的表,其中包含一个名为“filepath”的字段,该字段存储图像的绝对文件路径。但是,对于具有多个嵌套目录级别的大型媒体集合,数据库的大小会增加。所以我现在计划创建一个名为“paths”的新表来单独存储目录路径。“图像”表将简单地将外键存储到“路径”表。“图像”表还有一个名为“标题”的字段,我可以使用它重建绝对文件路径以在我的软件中使用

问题: 一旦该记录不再充当“图像”表中任何记录的外键,我如何从“路径”表中删除该记录?

4

1 回答 1

1

以下语句删除所有此类记录:

DELETE FROM paths
WHERE pathID NOT IN (SELECT pathID
                     FROM image)

或者,如果您想在删除image带有特定 的记录后立即进行检查pathID,请使用以下内容:

DELETE FROM paths
WHERE pathID = ?
  AND NOT EXISTS (SELECT pathID
                  FROM image
                  WHERE pathID = ?)
于 2013-06-21T07:14:59.063 回答