问题描述
我正在寻找一种重试方法,并在需要时删除位于给定文件夹根目录树中的所有文档及其所有版本,而不仅仅是当前版本。
最简单的方法可能是批量删除的 SQL 查询。由于以前版本的文档未归档在文件夹中,因此我继续这样做:
- 对 Document 类执行
SELECT
请求 - 使用 version_series 键在文档版本 (
LEFT JOIN
) 和其他版本 (Document AS doc
) 之间添加Document AS doc2
。 - 过滤以仅从其他版本 (
doc2.IsCurrentVersion = true
) 中获取当前版本 - 仅获取当前版本在给定文件夹树 (
INSUBFOLDER clause
) 中归档的文档
附加步骤:
- 左连接
ReferentialContainmentRelationShip
和Folder
类以获取文档当前版本所在文件夹的路径名
最终请求如下所示:
SELECT doc.this,doc.majorversionnumber AS "MAJV",doc.minorversionnumber AS "MINV",doc.IsCurrentVersion AS "Is Current",doc2.This AS "Current version",f.pathname AS "Current version folder"
FROM ((Document doc
LEFT JOIN Document doc2 ON
doc2.VersionSeries = doc.VersionSeries)
LEFT JOIN ReferentialContainmentRelationShip rcr ON
doc2.VersionSeries = rcr.VersionSeries)
LEFT JOIN Folder f ON f.This = rcr.tail
WHERE doc2.IsCurrentVersion = true AND
doc2.this INSUBFOLDER '/path/to/a/folder'
ORDER BY doc2.This
这是实现目标的好方法而不是矫枉过正吗?
解决方法
删除文档将删除所有版本。您必须执行降级才能删除当前版本。