【发布时间】:2015-05-10 12:15:21
【问题描述】:
我对在 SQLite 中进行简单更新似乎失败感到困惑。我已经在 Firefox 中安装了 SQLite 管理器,我想在那里更新 moz_places 表,因为我们最近更改了“提供者”,而不是在 Firefox 中清除我的整个历史记录,我认为如果我可以简单地更新信息以便历史记录点会很好到新位置。
想法是运行这段代码:
UPDATE moz_places SET url = REPLACE(url, '.old.com/', '.new.com/')
当我按下 [Run SQL] 时,我的印象是即使 Last Error 字段显示“不是错误”,也没有任何反应。也许它只是非常快?不,当我进入数据时,我发现它没有更新任何东西,而且我的位置文件夹仍然充满 old.com 网址。
但是,当我尝试时
UPDATE moz_places SET url = REPLACE(url, '.old.com/', '.new.com/') WHERE id = 2458
它确实更新了这条记录。
天真地假设 SQLite 语法需要 WHERE 然后我添加了
UPDATE moz_places SET url = REPLACE(url, '.old.com/', '.new.com/') WHERE id > 0
但这也没有给我带来任何结果。
SQLite 是否只允许单行更新?在互联网上环顾四周,我没有看到这样的限制,但否则我不确定可能是什么问题。
PS:我在 %appdata% 中找到的 /Profiles/ 文件夹的副本上执行此操作,而不是直接在“实时”版本上执行此操作。所以锁定也不应该是个问题。
【问题讨论】:
-
检查我的帖子是否有拼写错误我现在突然想知道这是否可能是由于我正在触发的唯一约束/索引...
标签: sqlite firefox sqlitemanager