Строка обновления SQLite - PullRequest
       4

Строка обновления SQLite

0 голосов
/ 09 ноября 2018

Я разрабатываю мобильное приложение на Cordova с базой данных SQLite.

Приложение получает данные из внешнего источника через JSONP и записывает данные в базу данных.

Мне нужно использовать запрос sql, чтобы определить, есть ли запись в таблице с определенным идентификатором, переписать строку, если она есть, и добавить новую, если ее нет.

На данный момент функция записи данных выглядит следующим образом:

    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);   
}

1 Ответ

0 голосов
/ 09 ноября 2018

Вы можете использовать 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=?

Далее Чтение

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...