0

私は次の表を持っています:

     table (id,
            longitude,
            latitude,
            longlat,
            address,
            description,
            kind,
            synonym,
            primary key(id)
      );

longlatフィールドとdescription行の挿入が一意であり、その前に挿入されたテーブルと同じ組み合わせの行がないことを確認する必要があります。longlatdescription

クエリをどのように変更する必要がありますか?

      "INSERT INTO yandex_social_objects (longitude,latitude,longlat,address,description,kind,synonym) VALUES (val_1),(val_2),(val_3)...(val_n)"
4

1 に答える 1

4

UNIQUEこれが起こらないように、組み合わせに制約を追加します。

ALTER TABLE yandex_social_objects
  ADD CONSTRAINT longlat_description_UQ
    UNIQUE (longlat, description) ;

その後、テーブルへのすべての挿入は、この組み合わせの一意性をチェックし、成功または失敗します。

INSERT IGNOREまたはを使用INSERT ... ON DUPLICATE KEY UPDATE ...して、一意のキーの衝突に対するさまざまな動作を行うことができます。違いについては、この回答を確認してください: INSERT IGNOREvsINSERT … ON DUPLICATE KEY UPDATE

于 2013-03-01T09:30:27.263 に答える