4

好的,所以我们有一个带有表格设置的 phonegap 应用程序,例如

tblTest (actualid INTEGER PRIMARY KEY, id INTEGER, name TEXT)

actualid 是设备的唯一 ID,该 ID 保存在服务器端数据库中。我们遇到了 web 服务返回重复记录的问题,在我们修复时,我想在我们的 sql 中添加一些内容,以防止添加重复记录(修复错误数据很痛苦)。

我们当前的插入语句设置如下

INSERT INTO tblTest (id, name) VALUES (101, 'Bob')

如果你运行两次,数据库最终会看起来像

actualid |  id| name
       1 | 101|  Bob
       2 | 101|  Bob

我希望它看起来像

actualid |  id| name
       1 | 101|  Bob

插入或替换会actualid 2在示例中给我一个,我发现使用 where 子句的任何示例都设置为

INSERT INTO tblTest SELECT ..... WHERE.....

这不起作用,因为表中还没有任何数据(除非我犯了新手错误,否则我不太擅长 sqlite 或一般 sql)。

4

2 回答 2

10

使用插入或忽略

INSERT OR IGNORE INTO tblTest (id, name) VALUES (101, 'Bob')

id(这需要您已经拥有的列上的唯一索引。)

于 2013-03-21T07:14:41.513 回答
5

你可能想试试这个:

 INSERT INTO tblTest 
      (id, name)
      SELECT 101 as id, 'Bob' as name
        FROM tblTest
       WHERE NOT EXISTS(SELECT * FROM tblTest WHERE id = 101 and name = 'Bob')
于 2013-03-20T21:47:06.527 回答