-- Phoenix P2.5.1 - Garantie d'unicité de la numérotation documentaire.
-- L'index est ajouté uniquement s'il n'existe pas déjà.
-- En présence de doublons historiques, l'ALTER TABLE échoue volontairement
-- afin qu'ils soient corrigés avant de garantir l'unicité.

SET @add_unique_document_number := (
    SELECT IF(
        COUNT(*) = 0,
        'ALTER TABLE documents ADD UNIQUE KEY uniq_documents_type_numero (type_document, numero)',
        'SELECT 1'
    )
    FROM information_schema.statistics
    WHERE table_schema = DATABASE()
      AND table_name = 'documents'
      AND index_name = 'uniq_documents_type_numero'
);

PREPARE stmt FROM @add_unique_document_number;
EXECUTE stmt;
DEALLOCATE PREPARE stmt;
