2016-09-29 3 views
0

Я разрабатываю приложение с Ionic и Cordova SQLite. Приложение вставляет данные в sqlite, если данные не существуют в sqlite, но если данные существуют в sqlite. Затем приложение заменяет старые данные. Ниже приведен мой код. Но я не могу вставлять данные в базу данных sqlite.Ионная Кордова SQLite, вставьте данные, если они не существуют, если существуют данные, замените старые данные

Создание базы данных

db = window.openDatabase("chatChannel.db", "1", "Demo SQLite Test", "2000"); 
$cordovaSQLite.execute(db, "CREATE TABLE IF NOT EXISTS chat_channel(id interger primary key, channel_name text unique, last_text text)") 

Вставка данных

var query = "INSERT INTO chat_channel (channel_name, last_text) VALUES(?,?) ON DUPLICATE KEY UPDATE (last_text) VALUES (?)"; 
    $cordovaSQLite.execute(db, query, [channel, $scope.messageContent], [$scope.messageContent]); 

Могу ли я узнать, как вставить данные в Cordova SQLite, если запись не существует в SQLite базы данных и данных обновления, если данные есть в базе данных.

ответ

0

Вы можете использовать REPLACE (https://www.sqlite.org/lang_insert.html)

REPLACE INTO chat_channel (channel_name, last_text) VALUES(?,?) 

Однако для того, чтобы правильно работать, вы должны иметь уникальный или первичный ключ, участвующий в запросе (в вашем случае, который будет работать, если CHANNEL_NAME является первичным ключом chat_channel или если он уникален), см. https://www.sqlite.org/lang_conflict.html для получения подробной информации о разрешении конфликта REPLACE

+0

Это не работает. То, что я хочу сделать, - это когда channel_name доступно в базе данных sqlite, то оно заменит last_text в базе данных, но если имя канала отсутствует в базе данных, оно будет вставлять новые данные в базу данных. –

+0

Проблема решена. Спасибо –

+0

ответ принят –

Смежные вопросы