Delimiter //
Drop Procedure if exists LOADER_CREATE_TABLE_REF_DATA//
Create Procedure LOADER_CREATE_TABLE_REF_DATA ()
Begin
    Drop Table If Exists LOADER_REFDATA;
    
    Create Table LOADER_REFDATA (
        ID_LOADER_REFDATA Int Unsigned Not Null Auto_increment
        -- champs pour le traitements de l'import
        , LOADER_STATUS_ID_LOADER_STATUS Int Unsigned Not Null

        -- champ de références
        , ACCOUNTS_REF Varchar(40) Null -- reference du compte. fourni par le fichier
        , ACCOUNTS_ID_ACCOUNTS Int Unsigned Null -- id du compte issu normalisation

        , ENTITIES_REF_SEQUENCE smallint Unsigned Null -- numéro de la sequence fourni par le fichier
        , ENTITIES_REF_DATA_CODE varchar(20) -- valeur de la référence, fourni par le fichier

        , ENTITIES_REF_ID_ENTITIES_REF Int Unsigned -- id reference, issu normalisation
        , ID_ENTITIES_REF_DATAS Int Unsigned -- issu normalisation si code trouvé
        , NEW_ID_ENTITIES_REF_DATAS Int Unsigned -- issu normalisation si code non trouvé

		, ENTRIES_ACC_EXT_REF Varchar(45) Null -- not null
        , ENTRIES_ID_ENTRIES Int Unsigned Null

		, LOADER_REFDATA_TYPE Varchar(25) Not NULL Default 'ACCOUNTS'

        -- contraintes et indexes
        , Primary Key (ID_LOADER_REFDATA)
        , Index (LOADER_STATUS_ID_LOADER_STATUS)
        , Index (ACCOUNTS_ID_ACCOUNTS, ENTRIES_ACC_EXT_REF)
        , Index (ENTRIES_ID_ENTRIES)
        , Index (ACCOUNTS_REF)
        , Index (LOADER_REFDATA_TYPE, ENTITIES_REF_SEQUENCE)
--         , Index (ENTITIES_REF_ID_ENTITIES_REF, ENTITIES_REF_DATA_CODE)
        , Index (ENTITIES_REF_ID_ENTITIES_REF, ENTITIES_REF_DATA_CODE)

    ) ENGINE=InnoDB AUTO_INCREMENT=0 DEFAULT CHARSET=utf8 COLLATE=utf8_general_ci;
End //
Delimiter ;
call LOADER_CREATE_TABLE_REF_DATA();