2013-06-24 190 views
0

我試圖做一個插入並替換id = 1的地方,原因是我只希望在數據庫中有一個條目。因此,當用戶輸入一個值將取代原有的價值,但目前它只是將它添加:SqLite3 - INSERT或REPLACE INTO where id = ...?

INSERT OR REPLACE INTO Animals(CAT) values ('Toby')" 

其工作正常,但我只想要一隻貓。我試過

INSERT OR REPLACE INTO Animals(CAT) values ('Toby') WHERE ID='1' 

但是它不工作,也試過在哪裏ID = 1和哪裏ID =「1」。

當我輸入第二隻貓時,我希望它替換已經存在的貓,ID是我表中的主鍵。

CREATE TABLE IF NOT EXISTS ANIMALS (ID INTEGER PRIMARY KEY AUTOINCREMENT, CAT VARCHAR) 

它不這樣做最徹底的方法,所以我願意接受建議

+0

什麼樣的數據類型是你的'ID'列?如果它是一個數字,那麼只需執行'WHERE ID = 1'。 – rmaddy

+0

它是一個整數,我認爲是正確的,WHERE不支持,因此它應該自動替換,但它不會 – user2515907

+0

你有錯誤嗎?或者0行更新? – Math

回答

3

在sqlite3的,有一個爲INSERT OR REPLACE後使用WHERE不支持。

enter image description here

我想你需要UPDATE語句中使用WHERE

如果你只想在你的數據庫中有一行 - 這是我如何解釋你的問題 - 它可能更容易使用NSUserDefaults而不是SQLite。

此外,請確保您正確設置主鍵和唯一索引;否則,REPLACE將不知道要替換什麼。

+0

感謝您的偉大圖! – user2515907

+0

我想插入,如果它不存在 – user2515907

+0

輝煌的生病如果沒有其他解決方案嘗試NSUserDefaults – user2515907