We read every piece of feedback, and take your input very seriously.
To see all available qualifiers, see our documentation.
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
No description provided.
The text was updated successfully, but these errors were encountered:
重命名文件夹的算法是一次性更新 materializedPath 的前缀。是可行的。
UPDATE "FilePath" SET "materializedPath" = REPLACE("materializedPath", "/a/aa/", "/a/ab/") WHERE "materializedPath" LIKE "/a/ab/%";
关于 REPLACE 函数的说明: 对于 /a/aa/a/aa/ 这种路径,如果是把 /a/aa/ 修改成 /a/ab/, 下面的 SQL 只会把 /a/aa/a/aa/ 变成 /a/ab/a/aa/ 而不会变成 /a/ab/a/ab/,因为 REPLACE 只替换第一个找到的字符串 另外,也不会把 /xxx/a/aa/ 替换成 /xxx/a/ab/,因为 LIKE 语句确保选择的 file_path 的前缀都是 /a/aa/,所以 /xxx/a/aa/ 不会被更新
Sorry, something went wrong.
注意: 对于 /a/aa/a/aa/ 这种路径,如果是把 /a/aa/ 修改成 /a/ab/, 下面的 SQL 只会把 /a/aa/a/aa/ 变成 /a/ab/a/aa/ 而不会变成 /a/ab/a/ab/,因为 REPLACE 只替换第一个找到的字符串 另外,也不会把 /xxx/a/aa/ 替换成 /xxx/a/ab/,因为 LIKE 语句确保选择的 file_path 的前缀都是 /a/aa/,所以 /xxx/a/aa/ 不会被更新
事实证明这样不对,/a/aa/a/aa/ 不是一个好的例子因为 /a/aa/ 是一个 occurrence,剩下的部分只有 a/aa/,确实是匹配不到的。如果例子是这样 /a/aa/x/a/aa/x/,重命名 /a/aa/ 成 /a/ab/ 的时候,最终会导致 /a/ab/x/a/ab/x/。
所以,不能用 REPLACE,而改用 前缀拼接是靠谱的。
UPDATE FilePath SET materializedPath = "/a/ab/" || SUBSTR(materializedPath, LENGTH("/a/aa/") + 1) WHERE materializedPath LIKE "/a/aa/%"
删除 file_path 以后要检查一下 assetobject 是否还有其他引用,如果没有的话,要删除 assetobject,进一步的,删除 filehandlertask
web3nomad
No branches or pull requests
No description provided.
The text was updated successfully, but these errors were encountered: