2013-09-28 138 views
1

不工作我使用下面的命令在我的數據庫更新場:UPDATE語句SQLite中

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

我使用sqlite3.exe在窗口(命令提示符)。儘管沒有產生錯誤消息,但表中沒有任何更改。我用幾個GUI工具檢查了數據庫,我確信UPDATE什麼都不做。

'From'是整數類型,'Name'是文本。

回答

2

你得到的問題是你得到你的報價錯誤。 SQLite在此遵循SQL標準,並指定要使用的引號字符:'…'用於字符串,而"…"用於標記(如用作列名或表名的特殊名稱)。有時,它管理猜測你的意思反正補償犯錯,但它不能與WHERE條款,因爲這是語法正確(如果斷然無益):

交換的報價似乎工作:

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

Wowwwww!我無法相信。有效。非常感謝你。 –

1

那些不是很好的列名。兩者都是關鍵字,最好避免,而且根本不需要自我解釋。

執行SELECT以查看有多少行與UPDATE中的WHERE子句匹配。如果沒有人回來,你有你的答案。

你提交了更新嗎?是否啓用自動提交?

+0

謝謝你讓我失望絕望。我還有兩個問題:1)創建後可以更改列名嗎? 2)那是什麼:'承諾'?我從來沒聽說過。我怎樣才能打開它? –

+0

我沒有理由回答你發佈的任何內容。你沒有在這裏投票。 – duffymo

+0

這是因爲我是新來的stackiverflow.com –