-1
tx.executeSql("SELECT * FROM Routes WHERE id_object = 0", [], 
function (tx, result) 
{ 
alert('You already added'); 
},
function (tx, error) { 
tx.executeSql('INSERT INTO Routes (id_object) VALUES (0)');             
alert('add successfull')} ) 
}  

如果结果集SELECT * FROM Routes WHERE id_object = 0为空,则应执行tx.executeSql('INSERT INTO Routes (id_object) VALUES (0)');

4

1 回答 1

1

id_object唯一的(即主键,还是声明的UNIQUE)?如果是这样,您可以简单地

INSERT OR IGNORE INTO Routes (id_object) VALUES (0);

如果您的id_object列不能唯一,那么您需要有时称为UPSERT(更新或插入)语句。SQLite 不直接支持这一点,但也许您可以通过触发器的组合来实现它。

到目前为止,最简单的方法是在程序的逻辑中而不是在 SQL 中进行测试,例如,基于

SELECT COUNT(*) FROM Routes WHERE id_object = 0"

如果结果为 0,请插入。

于 2013-05-15T21:00:37.683 回答