我试图插入并替换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)
这不是最干净的方式,所以我愿意接受建议
答案 0 :(得分:3)
在SQLite3中,WHERE
之后不支持使用INSERT OR REPLACE
。
我认为您需要UPDATE
语句才能使用WHERE
。
如果您只想在数据库中有一行 - 这就是我解释您的问题的方式 - 使用NSUserDefaults而不是SQLite可能更容易。
另外,请确保正确设置主键和唯一索引;否则,REPLACE
不知道要替换什么。