Converter uma coluna do Mysql em Primeira Letra Mauscula de cada Palavra

Bom dia Galera do Bem

Preciso atualizar as colunas do meu mabco de dados ClientesContato e ClientesEmpresa para que fiquem com a Primeira letra maiuscula em cada nome, ou seja substituindo as que estao escritas erroneamente tipo: eRASO VIEIRA gostaria que ficasse Eraso Vieira.

Um grande abraço amigos

CREATE FUNCTION CAP_FIRST (input VARCHAR(255))

RETURNS VARCHAR(255)

DETERMINISTIC

BEGIN
    DECLARE len INT;
    DECLARE i INT;

    SET len   = CHAR_LENGTH(input);
    SET input = LOWER(input); -- Opcional mas pode ser util quando queres formatar nomes
    SET i = 0;

    WHILE (i < len) DO
        IF (MID(input,i,1) = ' ' OR i = 0) THEN
            IF (i < len) THEN
                SET input = CONCAT(
                    LEFT(input,i),
                    UPPER(MID(input,i + 1,1)),
                    RIGHT(input,len - i - 1)
                );
            END IF;
        END IF;
        SET i = i + 1;
    END WHILE;

    RETURN input;
END;

update tabela CAP_FIRST where id > 0;

Uma curiosidade… Por que usa esse padrão?