我正在使用以下命令更新数据库中的字段:
UPDATE Movies SET 'From'=2 WHERE 'Name'="foo";
我在 Windows 中使用 sqlite3.exe(命令提示符)。尽管没有产生错误消息,但表中没有任何变化。我用几个 gui 工具检查了数据库,我确信 UPDATE 什么也没做。
“From”是整数类型,“Name”是文本。
我正在使用以下命令更新数据库中的字段:
UPDATE Movies SET 'From'=2 WHERE 'Name'="foo";
我在 Windows 中使用 sqlite3.exe(命令提示符)。尽管没有产生错误消息,但表中没有任何变化。我用几个 gui 工具检查了数据库,我确信 UPDATE 什么也没做。
“From”是整数类型,“Name”是文本。
您遇到的问题是您的引用错误。SQLite 在此处遵循 SQL 标准,并指定要使用的引号字符:'…'
用于字符串,"…"
用于标记(例如用作列名或表名的特殊名称)。有时它会设法猜出你的意思并弥补它的错误,但它不能与WHERE
子句一起使用,因为这在语法上是正确的(如果绝对没有帮助的话):
交换引用似乎有效:
UPDATE Movies SET "From"=2 WHERE "Name"='foo';
这些不是好的列名。两者都是关键字,最好避免,而且根本不自我解释。
执行 SELECT 以查看有多少行与 UPDATE 中的 WHERE 子句匹配。如果没有人回来,你有你的答案。
你提交了更新吗?是否开启了自动提交?