Как проверить, если результат запроса пуст
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)');
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, сделайте вашу вставку.