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)');
答案 0 :(得分: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则执行插入。