0

我有下表:

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

我需要检查字段longlatdescription插入行是唯一的,并且没有具有相同组合的行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 IGNOREorINSERT ... ON DUPLICATE KEY UPDATE ...来处理唯一键冲突的不同行为。检查这个答案的差异:INSERT IGNOREvsINSERT … ON DUPLICATE KEY UPDATE

于 2013-03-01T09:30:27.263 回答