我正在使用SQLite数据库在cordova上开发移动应用程序。
应用程序通过JSONP从外部源接收数据,并将数据写入数据库。
我需要使用sql查询来确定表中是否存在具有特定ID的条目,如果存在则重写该行,如果没有则添加一个新条目。
目前,数据写入功能如下:
addNews: function (id, title, date, content) {
databaseHandler.db.transaction(
function (tx) {
tx.executeSql(
"insert into news(id, title, date, content) values(?, ?, ?, ?)",
[id, title, date, content],
function (tx, results) { },
function (tx, error) {
console.log("add news error: " + error.message);
}
);
},
function (error) {
},
function () {
}
);
}
var url = "http://cp35240-wordpress.tw1.ru/wp-content/plugins/plugin/news.js";
var script = document.createElement('script');
script.setAttribute('src', url);
document.getElementsByTagName('head')[0].appendChild(script);
function news(data) {
var id = data.id;
var title = data.title;
var date = data.date;
var content = data.content;
newsHandler.addNews(id, title, date, content);
}
答案 0 :(得分:0)
您可以使用INSERT OR REPLACE
语法
INSERT OR REPLACE INTO TABLE (column_list)
VALUES (value_list);
所以在这里您可以使用
INSERT OR REPLACE INTO news(id, title, date, content) values(?, ?, ?, ?)
或者您可以使用UPSERT
INSERT INTO news(id, title, date, content)
values(?, ?, ?, ?)
ON CONFLICT(Id) DO UPDATE
SET tile=?
进一步Read