Karthikeyan,
Você não pode criar um gatilho dentro do procedimento armazenado. O gatilho é uma instrução DDL que não é permitida dentro dos procedimentos.
" ERRO 1303 (2F003):Não é possível criar um TRIGGER de dentro de outra rotina armazenada "
Para resolver seu propósito, você pode fazer o seguinte:
-
Pegue os valores atuais da tabela dentro da variável.
-
Simplesmente escreva uma consulta de atualização dentro do seu procedimento e verifique se o valor é atualizado ou não por "ROW_COUNT()".
-
Compare o novo valor com o valor antigo, de alterado e insira manualmente na tabela change_log.