当这些记录不再作为“链接”表的外键时,如何从表中删除未使用的记录

时间:2013-06-21 06:50:03

标签: database sqlite foreign-keys

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

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

1 个答案:

答案 0 :(得分:1)

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

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

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

pathID