2016-09-29 28 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數據庫和更新數據不存在的記錄。

回答

0

您可以使用REPLACE(https://www.sqlite.org/lang_insert.html

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

但是它才能正常工作,你需要有參與請求的唯一或主鍵(在你的情況,將工作,如果頻道名是主鍵或者它是唯一的),請參閱https://www.sqlite.org/lang_conflict.html以瞭解有關REPLACE

+0

衝突解決方案的詳細信息。它不起作用。我想要做的是,當sql_name數據庫中的channel_name可用時,它將替換數據庫中的last_text,但如果channel_name不在數據庫中,它會將新數據插入到數據庫中。 –

+0

問題解決了。謝謝 –

+0

答案接受 –

相關問題