2016-09-29 1 views
0

Ich entwickle eine Anwendung mit Ionic und Cordova SQLite. Die Anwendung fügt Daten in sqlite ein, wenn keine Daten in sqlite existieren, aber wenn Daten in sqlite existieren. Dann ersetzt die Anwendung die alten Daten. Das Folgende ist mein Code. Aber ich kann keine Daten in die SQLite-Datenbank einfügen.Ionic Cordova SQLite, Daten einfügen, wenn nicht existiert, wenn Daten vorhanden sind, alte Daten ersetzen

Datenbank erstellen

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)") 

Daten einfügen

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

Darf ich wissen, wie die Daten in cordova SQLite einfügen, wenn Datensatz nicht in SQLite-Datenbank und Update-Daten existieren, wenn Daten vorhanden sind in der Datenbank ist.

Antwort

0

können Sie verwenden REPLACE (https://www.sqlite.org/lang_insert.html)

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

jedoch für sie richtig arbeiten Sie in der Anfrage (in Ihrem Fall betraf einen eindeutigen oder Primärschlüssel haben müssen, die funktionieren würden, wenn channel_name der Primärschlüssel von chat_channel, oder wenn es eindeutig ist), siehe https://www.sqlite.org/lang_conflict.html für Details über die Konfliktlösung von REPLACE

+0

Es funktioniert nicht. Was ich tun möchte, ist, wenn channel_name in der sqlite-Datenbank verfügbar ist, dann wird der letzte Text in der Datenbank ersetzt, aber wenn channel_name nicht in der Datenbank ist, wird er neue Daten in die Datenbank einfügen. –

+0

Problem gelöst. Danke –

+0

Antwort angenommen –

Verwandte Themen