Delimiter //
/**
    tables est procédures pour l'importation des compte
    (table cible principale ACCOUNTS)
*/

Drop Procedure if exists LOADER_CREATE_TABLE_STATUS //

Create Procedure LOADER_CREATE_TABLE_STATUS()
Begin

    Drop Table If Exists LOADER_STATUS;

    Create Table LOADER_STATUS (

        -- champ auto increment, initialisé avant chanque import
        ID_LOADER_STATUS Int Unsigned Not Null Auto_increment,

		-- le champ SRC_TABLE_ID doit pouvoir être nullable
		-- afin de permetre la création de donnés suplémentaire en fonction des régle métier
		-- cepandant la valeurs non null doivent être unique !!!
        SRC_TABLE_ID Int Unsigned Null, -- spécifique mysql voir plus bas

        LOADER_STATUS_BATCH_NUM Int Not Null default 1, 

        LOADER_STATUS_ERRCOUNT Int Not Null default 0, 
        LOADER_STATUS_ERRMSGS TEXT Null, 

        LOADER_STATUS_WARNCOUNT Int Not Null default 0, 
        LOADER_STATUS_WARNMSGS TEXT Null, 
        
        LOADER_CONTACTS_LASTSTATUS Varchar(150) null,

        -- contraintes et indexes
        Primary Key (ID_LOADER_STATUS),
		-- ci dessous spécifique mysql
		-- Dans mysql, l'unicité est vérifié si il n'y a pas de valeur null  dans 
		-- l'ensembles des champs composant la clé unique
		
        Unique Key (SRC_TABLE_ID), 
        index (LOADER_STATUS_BATCH_NUM)

    ) ENGINE=InnoDB AUTO_INCREMENT=0 DEFAULT CHARSET=utf8 COLLATE=utf8_general_ci;

End //

Delimiter ;
call LOADER_CREATE_TABLE_STATUS();