在sqlite中插入或更新?

时间:2015-12-30 15:49:42

标签: sql sqlite

我的表是:

CREATE TABLE IF NOT EXISTS BrowseHistory (
id INTEGER NOT NULL, 
tid INTEGER NOT NULL PRIMARY KEY, 
data BLOB NOT NULL)

我想要做的是提供tid和数据,我想找到是否没有记录的tid ==给定tid,然后插入它(id是max(id)+ 1)。如果有,请检查id是否等于max(id),如果没有将id设置为max(id)+1。 我使用了以下sql,它可以工作,但它总是设置id等于max(id)+ 1

INSERT OR REPLACE INTO BrowseHistory (id, tid, data) values ((SELECT IFNULL(MAX(id),0) FROM BrowseHistory) + 1, ?, ?)

1 个答案:

答案 0 :(得分:0)

这在SQLite本身是不可能的。

使用您的实际编程语言执行此操作:

 
cursor.execute("UPDATE ...")
if cursor.rowcount == 0:
    cursor.execute("INSERT ...")