4

さて、次のようなテーブル設定の phonegap アプリがあります

tblTest (actualid INTEGER PRIMARY KEY, id INTEGER, name TEXT)

actualid はデバイスの一意の ID であり、ID はサーバー側のデータベースで維持されます。重複したレコードを返す Web サービスに問題がありました。修正中に、重複が追加されないように SQL に何かを追加したいと考えていました (不良データの修正は面倒です)。

現在の挿入ステートメントは次のように設定されています

INSERT INTO tblTest (id, name) VALUES (101, 'Bob')

それを2回実行すると、データベースは次のようになります

actualid |  id| name
       1 | 101|  Bob
       2 | 101|  Bob

そして、私がそれをどのように見せたいかは

actualid |  id| name
       1 | 101|  Bob

挿入または置換はactualid 2、例で私に与え、where句を使用して見つけた例は、

INSERT INTO tblTest SELECT ..... WHERE.....

データがまだテーブルにないため、これは機能しません(初心者の間違いを犯していない限り、私はsqliteまたは一般的なsqlがあまり得意ではありません)。

4

2 に答える 2

10

INSERT OR IGNOREを使用します。

INSERT OR IGNORE INTO tblTest (id, name) VALUES (101, 'Bob')

id(これには、既に持っている列の一意のインデックスが必要です。)

于 2013-03-21T07:14:41.513 に答える
5

あなたはこれを試してみたいかもしれません:

 INSERT INTO tblTest 
      (id, name)
      SELECT 101 as id, 'Bob' as name
        FROM tblTest
       WHERE NOT EXISTS(SELECT * FROM tblTest WHERE id = 101 and name = 'Bob')
于 2013-03-20T21:47:06.527 に答える