Delimiter $$
/**
* assure la persistance de la table TMP_ACCOUNTS_has_MEMBERS
* lors de l'import, dans chacun des lots, les données de la table TMP_ACCOUNTS_has_MEMBERS on été
* copiées dans la table TMP_ACCOUNTS_has_MEMBERS_PRCSS
* à l'issu de l'import les données  TMP_ACCOUNTS_has_MEMBERS_PRCSS seront copiées vers la table
* TMP_ACCOUNTS_has_MEMBERS_SAVE.
* pour recalculer le batch des correspondant (import de nouveau compte par exemple), il suffit de copier
* les données de la table  TMP_ACCOUNTS_has_MEMBERS_SAVE vers la table TMP_ACCOUNTS_has_MEMBERS et de relancer
* la PS BUSINESS_ATTACHED_MEMBERS_UPDATE
*
*/

# Delimiter $$
Drop Procedure if exists LOADER_ATTACHEDMEMBERS_COPY_SAVE_TMP_ACC_HAS_MBR$$

Create Procedure LOADER_ATTACHEDMEMBERS_COPY_SAVE_TMP_ACC_HAS_MBR (
)
Begin
    lamcstahb_main: Begin


        lamcstahb_delprevsaveref: Begin
            Declare lamcstahb_ref varchar(40);
            Declare lamcstahb_cursor Cursor For
                Select
                    Distinct TMP_ACCOUNTS_has_MEMBERS_REF
                From TMP_ACCOUNTS_has_MEMBERS_PRCSS
                ;

            Open lamcstahb_cursor;
            lamcstahb_blk: Begin
                Declare Exit Handler for NOT FOUND
                Begin
                    Close lamcstahb_cursor;
                End ;

                lamcstahb_loop: loop
                    fetch lamcstahb_cursor Into lamcstahb_ref;
                    Set @lamcstahb_ref = lamcstahb_ref;

                    -- suppression des précédentes données sauvegardé ayant la même ref
                    Delete TMP_ACCOUNTS_has_MEMBERS_SAVE
                    From TMP_ACCOUNTS_has_MEMBERS_SAVE
                    Where TMP_ACCOUNTS_has_MEMBERS_REF = @lamcstahb_ref;

                end loop lamcstahb_loop;

            End ;

        End;

        lamcstahb_saveall: Begin
            Insert Into TMP_ACCOUNTS_has_MEMBERS_SAVE (
                 ACCOUNTS_ID_ACCOUNTS, MEMBERS_ID_MEMBERS, ENTITIES_ID_ENTITIES
               , ENT_REF_DATA_ID_ENT_REF_DATAS_1, ENT_REF_DATA_ID_ENT_REF_DATAS_2
               , ENT_REF_DATA_ID_ENT_REF_DATAS_3, ENT_REF_DATA_ID_ENT_REF_DATAS_4
               , ENT_REF_DATA_ID_ENT_REF_DATAS_5
               , DF_ACCESS_PROFILES_ID_DF_ACCESS_PROFILES
               , TMP_ACCOUNTS_has_MEMBERS_REF
            )
            Select
                ACCOUNTS_ID_ACCOUNTS, MEMBERS_ID_MEMBERS, ENTITIES_ID_ENTITIES
                 , ENT_REF_DATA_ID_ENT_REF_DATAS_1, ENT_REF_DATA_ID_ENT_REF_DATAS_2
                 , ENT_REF_DATA_ID_ENT_REF_DATAS_3, ENT_REF_DATA_ID_ENT_REF_DATAS_4
                 , ENT_REF_DATA_ID_ENT_REF_DATAS_5
                 , DF_ACCESS_PROFILES_ID_DF_ACCESS_PROFILES
                 , TMP_ACCOUNTS_has_MEMBERS_REF
            From
                TMP_ACCOUNTS_has_MEMBERS_PRCSS
            ;
        end ;
        -- sauvegarde des données




    End;

End $$
Delimiter ;