如果不存在则插入行,否则更新sqlite - JavaScript

时间:2014-04-19 20:08:52

标签: javascript jquery sqlite

我知道过去有很多问题,但我似乎无法利用这些答案。我试过了,但他们似乎没有工作。

我有一个存储两个用户输入值的表:名称和电子邮件。当他们输入他们的姓名和电子邮件时,它会被存储到我的桌子的一行中。

我希望能够使用不同的名称更新同一行,如果用户键入其他值,则发送电子邮件;如果之前没有任何值,则插入这些值。

我的代码在这里:

db.transaction(function(transaction) {
 transaction.executeSql('INSERT INTO Details(name,email)\
 VALUES(?,?)',[$('#entername').val(), $('#enteremail').val()],
 nullHandler,errorHandler);

 });

如果需要,表格创建在这里:

db.transaction(function(tx){
   tx.executeSql( 'CREATE TABLE IF NOT EXISTS Details(Id INTEGER NOT\
                   NULL PRIMARY KEY,name,email)',
                   [],nullHandler,errorHandler);
                           },errorHandler,successCallBack);

我尝试过使用INSERT OR REPLACE,但这只会创建一个包含新详细信息的新行,并将前一行留给旧详细信息。有没有与我的案件相关的有效选择?感谢

1 个答案:

答案 0 :(得分:0)

终于开始工作了。我不得不这样做:

db.transaction(function(transaction) {
 transaction.executeSql('INSERT OR REPLACE INTO Details(id,name,email)\
 VALUES(1,?,?)',[$('#entername').val(), $('#enteremail').val()],
 nullHandler,errorHandler);

 });

其中id是行id。如果名称和电子邮件尚未存在,则会将第一行替换为您键入的任何其他内容