0

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

在 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+'\';');
    });
4

1 回答 1

3

您只能使用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将被替换。)

于 2013-03-25T18:26:25.560 回答