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