MySQL snippets
Є таблиця table у неї ключове поле obj_id і поле obj_uniq_field, яке має бути унікальним, але не унікальне. Нижче наведено запит, який робить це поле унікальним (повторюваним значенням приписує унікальний суфікс)
SET @ind = 0; UPDATE `table` n, ( SELECT buf.`id`,@ind:=@ind+1 ind, buf.url,CONCAT(buf.`url`,'-',@ind) `uurl` FROM ( SELECT n1.`obj_id` id, min(n.`obj_id`) mn, n1.`obj_uniq_field` url FROM `table` n,`table` n1 WHERE n1.`obj_uniq_field`=n.`obj_uniq_field` AND n1.`obj_uniq_field` IS NOT NULL AND n1.`obj_id` != n.`obj_id` GROUP BY n1.`obj_id` HAVING if(id<mn, id, mn) != id ) buf ) buf SET n.`obj_uniq_field`=buf.`uurl` WHERE n.`obj_id`=buf.`id`;