sql >> データベース >  >> RDS >> Mysql

SQLの重複を削除し、それに応じて関係テーブルを変更します

    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. サブクエリ結合と場所の違いの可視性

    2. postgreSQLでアクセントを削除する関数

    3. 高可用性のためにChamiloMariaDBデータベースをデプロイする方法

    4. Railsマイグレーションを作成して、精度を削除/変更し、小数でスケーリングするにはどうすればよいですか?