我有一个shell脚本,它发出一个sql查询,用另一个文件名替换数据库中的文件名。它还将通过将文件名与存储在不同表中的目录名相连接来替换完整路径。它适用于我,但当另一个用户在另一个数据库(相同的结构但不同的数据)上尝试它时,它将添加一个新记录而不是更新它。我已经搜索但我无法弄清楚为什么它适合我,而不是他们。我能想到的可能是许可问题。这是查询:
UPDATE My.files
SET strFilename="'$NFescaped'"
WHERE strFilename="'$DFescaped'";
UPDATE My.episode
SET c18 =
(SELECT concat (
(SELECT strPath
FROM My.path
WHERE path.idpath=
(SELECT idpath
FROM My.files
WHERE strFilename="'$NFescaped'")), "'$NFescaped'"))
WHERE c18 =
(SELECT concat (
(SELECT strPath
FROM .path
WHERE path.idpath=
(SELECT idpath
FROM My.files
WHERE strFilename="'$NFescaped'")), "'$DFescaped'"));