SQLite条件插入或替换

时间:2013-03-21 05:14:50

标签: android sqlite

我正在尝试将记录插入或更新到sqlite数据库中,并且只有在新值大于旧值时才更新该值。

架构是:

 CREATE table IF NOT EXISTS SearchTable
   (Owner INTEGER PRIMARY KEY, Generations INTEGER DEFAULT 0)

我尝试过这样的命令:

INSERT OR REPLACE INTO SearchTable(Owner, Generations)
 VALUES (?, MAX((SELECT Generations FROM SearchTable WHERE Owner = ?), ?))

但是它为Generations提供了一个空值。

我可以使用一些帮助。

1 个答案:

答案 0 :(得分:7)

尝试

INSERT OR REPLACE INTO SearchTable(Owner, Generations)
SELECT ?, MAX(Generations) FROM SearchTable WHERE Owner = ?