如果不同列中不存在数据,则允许重复记录

时间:2018-11-05 06:50:35

标签: mysql sql-update mariadb

我有2个列名location_iddistrict_id。如果现有location_idlocation_id记录不匹配,则可以复制district_id记录。下表将对此进行解释。

enter image description here

注意location_iddistrict_id的重复记录。该表包含有效数据。

如何在防止重复的同时使用mysql UPDATE。使用以下语法,即使B00801010244已经存在,我的表也可以更新。

    UPDATE 
    `location_id`, district_id 
    SET
      `location_id` = 'B008',
      `district_id ` = 0101031504
    WHERE `id` = 5

我上面的第二个查询将更新,即使已经存在具有相似数据的现有记录。

请帮助并提前致谢。

1 个答案:

答案 0 :(得分:2)

通过在Uniquelocation_id上添加复合district_id约束,可以结构上解决此问题。这将阻止所有尝试为该组合创建重复行的新DML操作。

ALTER TABLE your_table_name 
ADD UNIQUE `unique_location_district` (`location_id`, `district_id`)