SQLite条件插入或替换

Hal*_*alR 2 sqlite android

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

架构是:

 CREATE table IF NOT EXISTS SearchTable
   (Owner INTEGER PRIMARY KEY, Generations INTEGER DEFAULT 0)
Run Code Online (Sandbox Code Playgroud)

我试过这样的命令:

INSERT OR REPLACE INTO SearchTable(Owner, Generations)
 VALUES (?, MAX((SELECT Generations FROM SearchTable WHERE Owner = ?), ?))
Run Code Online (Sandbox Code Playgroud)

但它为Generations提供了一个空值.

我可以使用一些帮助.

pet*_*erm 7

尝试

INSERT OR REPLACE INTO SearchTable(Owner, Generations)
SELECT ?, MAX(Generations) FROM SearchTable WHERE Owner = ?
Run Code Online (Sandbox Code Playgroud)