当MySQL INSERT时,检查表中没有重复的两个字段

时间:2013-03-01 09:24:43

标签: mysql

我有以下表格:

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

我需要检查插入行中的字段longlatdescription是否唯一且没有{strong>相同组合 longlat和{{1}的行在它之前插入的表。

我该如何修改我的查询?

description

1 个答案:

答案 0 :(得分:4)

在组合上添加UNIQUE约束,这样就不会发生:

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

之后,所有对表格的插入都将检查此组合的唯一性,无论是成功还是失败。

您可以使用INSERT IGNOREINSERT ... ON DUPLICATE KEY UPDATE ...来解决唯一键冲突的不同行为。请查看此答案的差异:INSERT IGNORE vs INSERT … ON DUPLICATE KEY UPDATE