1

我正在使用以下命令更新数据库中的字段:

UPDATE Movies SET 'From'=2 WHERE 'Name'="foo";

我在 Windows 中使用 sqlite3.exe(命令提示符)。尽管没有产生错误消息,但表中没有任何变化。我用几个 gui 工具检查了数据库,我确信 UPDATE 什么也没做。

“From”是整数类型,“Name”是文本。

4

2 回答 2

4

您遇到的问题是您的引用错误。SQLite 在此处遵循 SQL 标准,并指定要使用的引号字符:'…'用于字符串,"…"用于标记(例如用作列名或表名的特殊名称)。有时它会设法猜出你的意思并弥补它的错误,但它不能与WHERE子句一起使用,因为这在语法上是正确的(如果绝对没有帮助的话):

交换引用似乎有效:

UPDATE Movies SET "From"=2 WHERE "Name"='foo';
于 2013-09-28T12:55:24.113 回答
2

这些不是好的列名。两者都是关键字,最好避免,而且根本不自我解释。

执行 SELECT 以查看有多少行与 UPDATE 中的 WHERE 子句匹配。如果没有人回来,你有你的答案。

你提交了更新吗?是否开启了自动提交?

于 2013-09-28T12:44:05.347 回答