2016-09-29 29 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

答案接受 –

相关问题