sql >> Databasteknik >  >> RDS >> Mysql

ta bort dubbletter i sql och ändra relationstabellen därefter

begin
  for x in (
            -- find duplicate items
            select *
              from (select rowid row_id,
                           item_id,
                           item_description,
                           row_number() over(partition by item_description order by
                           item_description) row_no
                       from item_tab)
            where row_no > 1) loop
-- replaceing duplicate Items
    update menu_has_item 
    set menu_has_item.item_tab_item_id =
           ( select item_id
              from (select item_id,
                           row_number() over(partition by item_description order by
                           item_description) row_no
                       from item_tab where 
                       item_tab.item_description = x.item_description)
             where row_no = 1)
   where menu_has_item .item_tab_item_id = x.item_id;
-- deleting duplicate items
     delete item_tab where rowid = x.row_id;
  end loop;
-- commit;
end;


  1. System.Data.OracleClient-namnutrymmet upphört?

  2. Jag försöker starta mysql-client i Docker men jag får åtkomst nekad på grund av användarfel

  3. Använder oanvända primärnycklar

  4. Hur man hämtar den multipla matchningssträngen med ett reguljärt uttryck