Mysql
 sql >> Baza danych >  >> RDS >> Mysql

usuwanie duplikatów w sql i odpowiednie modyfikowanie tabeli relacji

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. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Łączenie wielu stołów bez wspólnego klucza

  2. złożony klucz podstawowy i kolumna autoinkrementacji, ale NIE klucz podstawowy

  3. Pozwól użytkownikom MySQL tworzyć bazy danych, ale zezwalaj na dostęp tylko do własnych baz danych

  4. Jak pogrupować według identyfikatora użytkownika i uporządkować według opisu?

  5. Zabij lub zatrzymaj zapytania MySQL po zamknięciu skryptu PHP