SqLite3 - INSERT或REPLACE INTO其中id = ...?

时间:2013-06-24 18:46:18

标签: objective-c sqlite

我试图插入并替换id = 1的地方,原因是我只想在数据库中输入一个条目。因此,当用户输入一个值时,它将替换原始值,但此时它只是添加它:

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)

这不是最干净的方式,所以我愿意接受建议

1 个答案:

答案 0 :(得分:3)

在SQLite3中,WHERE之后不支持使用INSERT OR REPLACE

enter image description here

我认为您需要UPDATE语句才能使用WHERE

如果您只想在数据库中有一行 - 这就是我解释您的问题的方式 - 使用NSUserDefaults而不是SQLite可能更容易。

另外,请确保正确设置主键和唯一索引;否则,REPLACE不知道要替换什么。