在phonegap中的重复键插入

时间:2013-03-25 17:45:40

标签: sql sqlite cordova

是否有东西插入到SQLite中作为MySQL中重复键的插入?

在PhoneGap中,我在'ON DUPLICATE'上收到SQL语法错误。我不希望在插入之前查找每个项目。

我的代码:

$.each(jsondata, function(i, item) {
    tx.executeSql('INSERT INTO Pricelist2 (id, name,desc,make,price) '+
                  'VALUES ('+jsondata[i].id+', '+
                           '"'+data[i].name+'", '+
                           '"'+jsondata[i].description+'", '+
                           '"'+jsondata[i].make+'", '+
                           '"'+jsondata[i].price+'")'+
                  ' ON DUPLICATE KEY UPDATE '+
                      'desc=\''+jsondata[i].description+'\','+
                      'price=\''+jsondata[i].price+'\';');
    });

1 个答案:

答案 0 :(得分:3)

您只能使用syntax that is actually supported by SQLite

对于这个特殊问题,INSERT OR REPLACE很可能是你想要的:

tx.executeSql('INSERT OR REPLACE INTO Pricelist2(id,name,desc,make,price)'+
              'VALUES (?,?,?,?,?)',
              [jsondata[i].id,
               data[i].name,
               jsondata[i].description,
               jsondata[i].make,
               jsondata[i].price]);

(如果记录已存在,namemake也将被替换。)