0

MySQLの重複キーの挿入としてSQLiteに挿入するための何かがありますか?

PhoneGapで、「ONDUPLICATE」で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]);

(レコードがすでに存在し、nameまたmake置き換えられる場合。)

于 2013-03-25T18:26:25.560 に答える