我有2个列名location_id
和district_id
。如果现有location_id
和location_id
记录不匹配,则可以复制district_id
记录。下表将对此进行解释。
注意location_id
和district_id
的重复记录。该表包含有效数据。
如何在防止重复的同时使用mysql UPDATE
。使用以下语法,即使B008
和01010244
已经存在,我的表也可以更新。
UPDATE
`location_id`, district_id
SET
`location_id` = 'B008',
`district_id ` = 0101031504
WHERE `id` = 5
我上面的第二个查询将更新,即使已经存在具有相似数据的现有记录。
请帮助并提前致谢。
答案 0 :(得分:2)
通过在Unique
和location_id
上添加复合district_id
约束,可以结构上解决此问题。这将阻止所有尝试为该组合创建重复行的新DML操作。
ALTER TABLE your_table_name
ADD UNIQUE `unique_location_district` (`location_id`, `district_id`)