2016-09-29 11 views
0

IonicとCordova SQLiteでアプリケーションを開発しています。アプリケーションは、データがsqliteに存在しない場合はsqliteにデータを挿入しますが、sqliteにデータが存在する場合は挿入されます。その後、アプリケーションは古いデータを置き換えます。以下は私のコードです。しかし、私はsqliteデータベースにデータを挿入することはできません。Ionic Cordova 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]); 

をデータベースを作成します。私は、データがデータベースに存在した場合、レコードはSQLiteのデータベースおよび更新データ内に存在しない場合はコルドバのsqliteにデータを挿入する方法を知っているかもしれません。

あなたはCHANNEL_NAMEが主キーの場合は仕事とあなたのケースでは、要求(に関与一意キーまたは主キーを持っている必要がありますしかし、それは正しく動作するために( https://www.sqlite.org/lang_insert.html

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

をREPLACE使用することができます

答えて

0

chat_channelの場合、またはそれが一意の場合)https://www.sqlite.org/lang_conflict.htmlを参照してください。置換の競合解決の詳細については、

+0

は機能しません。私がしたいのは、channel_nameがsqliteデータベースで利用可能な場合、データベース内のlast_textを置き換えますが、channel_nameがデータベースにない場合は、データベースに新しいデータを挿入します。 –

+0

問題が解決しました。ありがとう –

+0

答えが受け入れられました –

関連する問題